RocketMQ中消息的優先級 原

    本文主要介紹RocketMQ中消息優先級的設置方法。

一.JMS中JMSPriority

    JMSPriority 頭字段包含了消息的優先級。在消息被髮送的時候,這個字段被忽略,當消息發送完成後,它持有了發送方法指定的值。 JMS定義了10級的優先級, 0作爲最低級, 9是最高級。除此之外,客戶端可以認爲0-4級是普通優先級,而5-9作爲加速優先級。 JMS不強迫提供者嚴格實現消息的優先級順序,但是,最好實現加速消息先於普通消息。JMS規範地址:《JMS規範教程》

 

二.RocketMQ中消息優先級

    RocketMQ 並不遵循任何規範,但參考了各種規範的設計思想。考慮到持久化的消息按照優先級排序開銷大,RocketMQ 沒有特意支持消息優先級。查看了代碼,在Message的API中,的確沒有提供和Priority(優先級)有關的方法。

    有兩種變通的處理思路供參考:

    1.使用消息隊列來表示不同的優先級:單獨配置一個優先級高的隊列,和一個普通優先級的隊列, 將不同優先級發送到不同隊列即可;

    2.使用Topic來表示不同的優先級:每個優先級可以用不同的 topic 表示,發消息時,指定不同的 topic 來表示優先級。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章