RabbitMQ基礎概念

參考:https://www.jianshu.com/p/79ca08116d57

https://www.cnblogs.com/dwlovelife/p/10982735.html

https://blog.csdn.net/u013871100/article/details/82982235

MQ主要用途:不同進程Process/線程Thread之間通信

RabbitMQ:在AMQP(高級消息隊列協議)基礎商使用Erlang開發的消息中間件

RabbitMQ架構:

AMQP:Advanced Message Queuing Protocol 高級消息隊列協議

AMQP的核心思想是生產者和消費者進行隔離,生產者從不直接將消息發送給隊列,生產者通常不知道是否一個消息會被髮送到隊列中,只是將消息發送到一個交換機,先由exchange接收,然後按照策略轉發到queue進行存儲。

RabbitMq六種工作模型

1、simple模式

生產者將消息直接放進隊列,消費者監聽消息隊列,如果有消息就消費,消息被拿走後,自動從隊列中刪除。

2、work工作模式(資源的競爭)

消息產生者將消息放入隊列消費者可以有多個,消費者1,消費者2,同時監聽同一個隊列,消息被消費?C1 C2共同爭搶當前的消息隊列內容,誰先拿到誰負責消費消息

3、發佈訂閱模式

消息產生者將消息放入交換機,交換機發布訂閱把消息發送到所有消息隊列中,對應消息隊列的消費者拿到消息進行消費

4、路由模式

交換機根據路由的key,只能匹配上路由key對應的消息隊列,對應的消費者才能消費消息

5、topic主題模式(特殊的路由模式)

①*(星號)僅代表一個單詞
②#(井號)代表任意個單詞

*.orange.* 能匹配 a.orange.a,b.orange.a,aa.orange.bb等等
lay.#能匹配的就多了,他只要一lay.開頭的都匹配,他可以匹配lay.a,lay.a.b,lay.b.c

6、RPC模式(很少使用)

客戶端發送請求消息,服務端回覆響應消息,爲了接受響應response,客戶端需要發送回調一個隊列的地址來接受響應,每條消息在發送的時候會帶上一個唯一的correlation_id,相應的服務端處理計算後會將結果返回到對應的correlation_id

 

 

 

 

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