Thực hiện điều này với những đảm bảo chắc chắn là khó nhưng không phải là không thể. Tôi đã viết chi tiết về một giải pháp tại đây:https://www.alechenninger.com/2020/05/building-kafka-like-message-queue-with.html
Các ví dụ bằng Java nhưng phần quan trọng là thuật toán.
Nó phụ thuộc vào một số kỹ thuật:
- Mỗi quy trình cố gắng lấy một khóa
- Mỗi khóa (hoặc mỗi thay đổi) có một mã thông báo hàng rào được liên kết
- Việc xử lý từng thay đổi phải được thiết kế đơn giản
- Trong khi xử lý thay đổi, mã thông báo được sử dụng để đảm bảo cập nhật một lần có thứ tự và hiệu quả.
Thêm chi tiết trong bài đăng trên blog.