Mentaqueue cung cấp một hàng tiêu dùng đơn của nhà sản xuất duy nhất dựa trên cùng một ý tưởng - http://mentaqueue.soliveirajr.com/Page.mtw, bạn có thể kiểm tra mã, mặc dù tôi chưa bao giờ sử dụng nó.
Disruptor ngoài hộp cung cấp hai kỹ thuật ở đây - Tôi sẽ không đi vào mã nhưng có thể làm điều đó nếu bạn cần.
Nó cho phép một trình tự xử lý sự kiện và bạn có thể cấu hình để mỗi trình xử lý xử lý tất cả các yêu cầu song song; mỗi yêu cầu được xử lý bởi mọi trình xử lý.
Việc triển khai Hồ sơ công nhân cho phép một nhóm chuỗi công nhân cho mỗi quá trình yêu cầu; mỗi yêu cầu sẽ được xử lý một lần từ một hồ bơi thread.
Nếu bạn đã xác định rằng hàng đợi mất nhiều thời gian hoặc bạn có thời gian đáng kể (khóa/đồng bộ hóa) thì tôi chắc chắn sẽ xem xét Người phá sản. Bạn sẽ nhận được những lợi ích tốt nhất bằng cách xem xét liệu các chỉnh sửa đối với kiến trúc của bạn có thể dẫn đến việc sử dụng sạch Disruptor hay không.
Có giảm độ trễ giao dịch sẽ giúp đạt được thông lượng, do đó, điều đó có thể có ý nghĩa, nhưng nó phụ thuộc vào những gì đang nắm giữ thông lượng của bạn. Điều này sẽ trở thành một nhận xét rất chung chung - rằng bạn nên xác định khu vực ứng dụng của bạn đang giữ lại thông lượng.
Các chỉ báo sẽ dẫn tôi sử dụng Disruptor sẽ là - rất nhiều tác vụ ngắn được xử lý theo cách tương tự, tranh chấp về bộ nhớ, yêu cầu sắp xếp, phát trực tuyến hoặc IO nặng (có thể hưởng lợi từ việc tạo nhóm).
Xin chào @pmf, tôi đã thêm phản hồi chung cho câu hỏi của bạn. Nó có thể giúp đỡ nếu bạn có thể làm sáng tỏ một số chính xác lý do tại sao bạn nghĩ LBQ là một mối quan tâm ở đây và kiến trúc ứng dụng của bạn trông như thế nào. – jasonk