Đối với phần mềm trung gian hướng tin nhắn không nhất quán hỗ trợ các thông điệp ưu tiên (chẳng hạn như AMQP) cách tốt nhất để thực hiện mức ưu tiên là gì khi hàng đợi chỉ có ngữ nghĩa FIFO ? Trường hợp sử dụng chung sẽ là một hệ thống trong đó người tiêu dùng nhận được các thông điệp có mức độ ưu tiên cao hơn trước các thông báo có mức độ ưu tiên thấp hơn khi một lượng lớn các thông điệp tồn tại trong Hàng đợi.Trong hệ thống Qeueing FIFO, cách tốt nhất để thực hiện ưu tiên nhắn tin
Trả lời
Chỉ được hỗ trợ FIFO cho một hàng đợi nhất định, tất nhiên bạn sẽ phải giới thiệu nhiều hàng đợi, trung gian hoặc có người tiêu dùng phức tạp hơn.
Nhiều hàng đợi có thể được xử lý theo một vài cách. Nhà sản xuất và người tiêu dùng có thể đồng ý có hai hàng đợi giữa chúng, một cho ưu tiên cao và một cho các tác vụ nền.
Nếu nhà sản xuất của bạn bị ràng buộc vào một hàng đợi duy nhất, nhưng bạn có quyền kiểm soát người tiêu dùng, hãy xem xét giới thiệu bộ định tuyến người hâm mộ trong đường dẫn. Vì vậy, nhà sản xuất-> Router là một hàng đợi duy nhất, và router sau đó có hai hàng đợi cho người tiêu dùng.
Một cách khác để giải quyết nó, có khả năng ít hơn lý tưởng, sẽ khiến người tiêu dùng quay một sợi chỉ trước hàng đợi, sau đó gửi công việc nội bộ. Một cái gì đó giống như phiên bản router ở trên, nhưng bên trong một ứng dụng duy nhất. Điều này có nhược điểm là có nhiều thư trong chuyến bay bên trong ứng dụng của bạn, điều này có thể làm phức tạp việc khôi phục trong trường hợp không thành công.
Đừng quên xem xét sự đói kém của các sự kiện có mức độ ưu tiên thấp, bất kể chúng là gì, nếu một số trong số chúng cần được xử lý ngay cả khi có sự kiện có mức ưu tiên cao hơn vẫn bị treo.
Đây là chính xác hơn hoặc ít hơn những người chúng tôi đã thực hiện chiến lược này cho một dự án tại nơi làm việc. Nhiều hàng đợi cho một hệ thống ưu tiên được xếp loại. Chúng tôi không lo lắng nhiều về nạn đói vì chúng tôi chỉ có thể tái xuất bản các thư có mức ưu tiên thấp hơn quan trọng với ưu tiên cao hơn trong các trường hợp như vậy; công việc dư thừa được xử lý, cho hầu hết các phần, idempotently để cho phép điều này. – quaternion
- 1. Hệ thống xếp hàng tin nhắn
- 2. Bạn sẽ thiết kế hệ thống tin nhắn như thế nào twitter, cách thiết kế hệ thống nhắn tin?
- 3. cách tốt nhất để gửi tin nhắn cho chủ đề
- 4. Cách tốt nhất để tạo ra một hệ thống "hashtag"
- 5. Cách tăng :: hệ thống :: error_code :: tin nhắn bằng tiếng Anh?
- 6. Commons Logging ưu tiên thực hành tốt nhất
- 7. Cách tốt nhất để tích hợp một số hệ thống?
- 8. Ưu tiên tin nhắn JMS không hoạt động trên Message
- 9. Hiện tại hệ thống xây dựng tốt nhất là gì
- 10. Cách tốt nhất để phát triển hệ thống đăng nhập/xác thực tùy chỉnh trong ASP.NET
- 11. Thực hiện nhắn tin JMS
- 12. Hệ thống phân tán, khung tốt nhất?
- 13. Tránh tất cả tin nhắn và tin nhắn hệ thống từ các phần mềm khác
- 14. Hệ thống đơn giản nhất để gửi tin nhắn từ máy chủ Linux là gì?
- 15. Làm cách nào để tạo hệ thống "Xem"? Tìm kiếm thực tiễn tốt nhất
- 16. không nhận được tin nhắn ngay cả khi đặt ưu tiên cao nhất và được cài đặt trước tiên
- 17. Truy vấn hệ thống nhắn tin để nhận tin nhắn cuối cùng, số lượng tin nhắn chưa đọc và mảng người dùng trong cuộc hội thoại
- 18. Cấu trúc cơ sở dữ liệu cho Hệ thống nhắn tin Web
- 19. Thực tiễn tốt nhất để thiết kế vai trò người dùng và hệ thống quyền?
- 20. Cách tốt nhất để thể hiện các ưu tiên/sở thích trong các đối tượng là gì?
- 21. thực hiện tin nhắn tức thời cho đường ray?
- 22. Đặt hàng các tin nhắn
- 23. Cách tốt nhất để sử dụng PowerShell Cmdlet trong hệ thống xây dựng NAnt là gì?
- 24. Cách tốt nhất để thực hiện kiểm thử phần mềm
- 25. Cách tốt nhất để thực hiện Stackoverflow kiểu danh tiếng
- 26. Cách tốt nhất để thực hiện chuỗi con trong tập tin batch là gì?
- 27. Cách tốt nhất để thực hiện RKReachabilityObserver trong RestKit
- 28. Cách tốt nhất để đưa một hệ thống dịch thuật vào trang web php là gì?
- 29. MongoDB/NOSQL: Cách tiếp cận tốt nhất để xử lý trạng thái đọc/chưa đọc trên tin nhắn
- 30. Hệ thống xếp hàng - cách tốt nhất để bắt đầu nhiều công nhân là gì?
Bạn có thể có nhiều hàng đợi không? Nếu vậy tôi sẽ đề nghị có một hàng đợi riêng biệt cho các thông điệp ưu tiên cao được truy vấn trước trước hàng đợi tiêu chuẩn, mà chỉ được sử dụng nếu hàng đợi ưu tiên trống. Tôi không biết điều đó có phù hợp với kịch bản của bạn hay không nhưng đó là ý tưởng đầu tiên của tôi. – CodeFusionMobile
Tôi đồng ý với CSharpWithJava. Tôi đang làm một ứng dụng nhắn tin lớn vào lúc này, và tôi nghĩ từ các câu hỏi của bạn, bạn cần nhiều hàng đợi, vì vậy bạn có thể giảm bớt các thông điệp pri thấp hơn xuống hàng đợi pri thấp hơn và đọc ngay pri cao. –