大家好,我是君哥。
我們在做消息隊列的技術選型時,往往會結合業務場景進行考慮。今天來聊一聊消息隊列可能會用到的 7 種消息場景。
消息隊列最基礎的功能就是生產者發送消息、Broker 保存消息,消費者來消費消息,以此實現系統解耦、削峰填谷的作用。
RocketMQ 實現了消費端的死信隊列,當消費者消費失敗時,會進行重試,如果重試 16 次還是失敗,則這條消息會被發送到死信隊列。
RabbitMQ 實現了生產者和 Broker 的死信隊列,下面三種情況,消息會被發送到死信隊列:
RabbitMQ 消息變成死信消息后,會被發送到死信交換機(Dead-Letter-Exchange)。
有一些業務場景下,我們需要優先處理一些消息,比如銀行里面的金卡客戶、銀卡客戶優先級高于普通客戶,他們的業務需要優先處理。如下圖:
主流消息隊列中,RabbitMQ 是支持優先級隊列的,代碼如下:
ConnectionFactory factory=new ConnectionFactory();cnotallow=factory.newConnection();Channel channel=connection.createChannel();Map<String, Object> args = new HashMap<String, Object>();//設置優先級為 5args.put("x-max-priority", 5);channel.queueDeclare("my-priority-queue", true, false, false, args);
消息隊列技術選型,要考慮的因素很多,本文主要從業務場景來分析需要考慮的因素,同時技術上也需要考慮運維復雜度、業務規模、社區活躍度、學習成本等因素。希望本文對你使用消息隊列有所幫助。
本文鏈接:http://www.www897cc.com/showinfo-26-11887-0.html消息隊列技術選型:這七種消息場景一定要考慮!
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com
上一篇: Havoc遠控源碼剖析(協議篇)
下一篇: 深入理解 RocketMQ 廣播消費