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