天天看點

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 來表示優先級。

版權聲明:本文為CSDN部落客「weixin_34117211」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/weixin_34117211/article/details/92464271