动态

详情 返回 返回

RabbitMQ框架與五種模式 - 动态 详情

一、RabbitMQ的架構圖

RabbitMQ框架流程圖

  1. Broker = MQ 服務器:消息中轉站。
  2. VirtualHost:虛擬主機,具備隔離效果的一個空間,一個MQ有多個VirtualHost空間。
  3. exchange:交換機,判斷並分配消息的路由到各個隊列中。
  4. queue:隊列,是可以存儲消息的容器。
  5. Publisher:消息生產者,用來生產與發送消息的角色。
  6. Consumer:消息消費者,用來接收、消費消息的角色。

二、RabbitMQ的五種模式及其能夠達到的效果

1、簡單模式 Simple.queues

簡單模式圖例
一條龍服務:生產者P 直接生產發送消息,儲存到隊列Q 中,最終由消費者C 接收消費消息。

2、工作隊列模式 Work.Queues

工作隊列模式
一個供應商,多個消費者:生產者P 直接生產發送消息,儲存到隊列Q 中,最終被多個消費者C 接收消費消息。
多個消費者C 之間是平等的競爭關係。

3、發佈訂閲模式 Publish/Subscribe

發佈訂閲模式
無條件路由羣發:管控台創建兩個隊列Q ,一個交換機X,並綁定交換機與隊列。
生產者P 生產發送消息到交換機X中,交換機X判斷並分配消息給不同的隊列Q1、Q2 進行儲存,最終被對應隊列的消費者C1、C2 接收消費消息。
X-->Q 無路由規則:交換機類型為 fanout,表示為扇出,其實就是無條件羣發。

4、路由模式 Routing

路由模式
精準路由定位:交換機X 到隊列Q 的過程,有精確的路由規則-->交換機X 到隊列Q 的路由規則有a、b、c,只要路由匹配,就會將消息儲存到對應的隊列Q 中,再給消費者。

5、Topic模式 Topics

Topic模式
模糊路由匹配:交換機X 到隊列Q 的過程,有模糊的路由規則-->* 和 # 代表佔位符,可以進行模糊匹配。
圖中的交換機X 到隊列Q 的路由規則有 .a...b 以及 c.# ,假設此時從交換機X 到隊列Q 有一路徑為 c.a.b,那麼三個路由均可通過。其中,X 到Q2 有兩條路徑匹配,消息只會走其中一條路徑,Q2中只儲存一條該消息。

Add a new 评论

Some HTML is okay.