-
是什么查看全部
-
是什么查看全部
-
rabbitMQ查看全部
-
消息如何流轉
查看全部 -
用Virtral host 作不同公司之間的業務隔離
查看全部 -
消息可靠性投遞方案
Step 1: 首先把消息信息(業務數據)存儲到數據庫中,緊接著,我們再把這個消息記錄也存儲到一張消息記錄表里(或者另外一個同源數據庫的消息記錄表)
Step 2:發送消息到MQ Broker節點(采用confirm方式發送,會有異步的返回結果)
Step 3、4:生產者端接受MQ Broker節點返回的Confirm確認消息結果,然后進行更新消息記錄表里的消息狀態。比如默認Status = 0 當收到消息確認成功后,更新為1即可!
Step 5:但是在消息確認這個過程中可能由于網絡閃斷、MQ Broker端異常等原因導致 回送消息失敗或者異常。這個時候就需要發送方(生產者)對消息進行可靠性投遞了,保障消息不丟失,100%的投遞成功?。ㄓ幸环N極限情況是閃斷,Broker返回的成功確認消息,但是生產端由于網絡閃斷沒收到,這個時候重新投遞可能會造成消息重復,需要消費端去做冪等處理)所以我們需要有一個定時任務,(比如每5分鐘拉取一下處于中間狀態的消息,當然這個消息可以設置一個超時時間,比如超過1分鐘 Status = 0 ,也就說明了1分鐘這個時間窗口內,我們的消息沒有被確認,那么會被定時任務拉取出來)
Step 6:接下來我們把中間狀態的消息進行重新投遞 retry send,繼續發送消息到MQ ,當然也可能有多種原因導致發送失敗
Step 7:我們可以采用設置最大努力嘗試次數,比如投遞了3次,還是失敗,那么我們可以將最終狀態設置為Status = 2 ,最后 交由人工解決處理此類問題(或者把消息轉儲到失敗表中)。
查看全部 -
RabbitMQ消息是如何流轉的?
查看全部 -
## RabbitMQ核心概念
server:又稱Broker,接受客戶端的連接,實現AMQP實體服務
Connection:連接,應用程序與Broker的網絡連接
Channel:網絡信道,幾乎所有的操作都在Channel中進行,Channel是進行消息讀寫的通道。
Message:消息,服務器和應用程序之間傳送的數據,由Properties和Body組成。Properties可以對消息進行裝飾,比如消息的優先級、延遲等屬性;body則就是消息體內容
Virtual host:虛擬地址,用于邏輯隔離,是最上層的消息路由;一個Virtual host有若干個Exchange和Queue,同一個Virtual Host里面不能有相同名稱的Exchange和Queue
Exchang:交換機,接收信息,根據路由鍵轉發消息到綁定的Queue
Binding:Exchang和Queue之間的虛擬連接,binding中可以包含routing key(路由鍵)
Routing key:一個路由規則,Virtual host可用它來確定如何路由一個特定消息
Queue:也稱為Message Queue,消息隊列,保存消息并將它們轉發給消費者
查看全部 -
RabbitMQ的整體架構圖
查看全部 -
RabbitMQ安裝步驟
查看全部 -
RabbitMQ安裝與使用
查看全部 -
AMQP協議模型
查看全部 -
RabbitMQ的特點
查看全部 -
RabbitMQ的特點:
- RabbitMQ底層采用Erlang語言進行編寫
- 開源、性能優秀、穩定性好
- 與SpringAMQP完美的整合、API豐富
- 集群模式豐富、表達式配置、HA模式、鏡像隊列模型
- 保證數據不丟失的前提做到高可靠性、可用性
查看全部 -
RabbitMQ定義
查看全部
舉報