【RabbitMQ】RabbitMQ工作模型

1、整體架構

  • Broker :實體服務器。提供傳輸服務,維護從生產者到消費者的傳輸線路,保證消息數據能按照指定的方式傳輸。
  • Exchange:消息交換機。消息按照一定規則路由到隊列Queue。
  • Queue:消息隊列。消息的載體,每條消息都會被投送到一個或多個隊列中。
  • Binding:綁定。將Exchange和Queue按路由規則綁定。
  • Routing Key :路由關鍵字。Exchange根據Routing Key進行消息傳遞。定義綁定時指定的關鍵字稱爲Binding Key。
  • Vhost:虛擬主機。一個Broker可以有多個虛擬主機,用作不同用戶的權限分離。一個虛擬主機持有一組Exchange、Queue和Binding。
  • Producer:消息生產者。主要將消息投遞到對應的Exchange上面。一般是獨立的程序。
  • Consumer:消息消費者。消息的接收者,一般是獨立的程序。
  • Connection:Producer和Consumer與Broker之間的TCP長連接。
  • Channel:消息通道,也稱信道。在客戶端的每個連接裏可以建立多個channel,每個Channel代表一個會話任務。

2、三種交換機

  1. Direct Exchange 直連交換機
    直連類型的交換機與一個隊列綁定時,需要指定一個明確的binding key。消息到直連類型的交換機時,只有routing key和binding key完全匹配時,綁定的隊列才能收到消息。
  2. Topic Exchange 主題交換機
    主題類型的交換機與一個隊列綁定時,可以指定按模式匹配的routing key。通配符有兩個,*代表匹配一個單詞。#代表匹配零個或者多個單詞。單詞與單詞之間用.隔開。消息到主題類型的交換機時,routing key符合binding key的模式時,綁定的隊列才能收到消息。
  3. Fanout Exchange 廣播交換機
    廣播類型的交換機與一個隊列 綁定時,不需要指定binding key。消息發送到廣播類型的交換機時,不需要指定routing key,所有與之綁定的隊列都能收到消息。

3、五種消息模型

  1. 基本消息模型

    生產者向一條隊列中生產消息,一個消費者消費隊列中的消息。

  2. 工作隊列模型

    生產者向一條隊列中生產消息,多個消費者消費隊列中的消息。

  3. 發佈/訂閱模型(廣播)

    生產者將消息發送到交換機,交換機工作在fanout廣播模式,交換機將消息發送到與之綁定的所有隊列中,每個隊列對應一個消費者。

  4. 路由模型

    生產者將消息發送到交換機,交換機工作在direct直連模式,交換機將消息發送到binding key與routing key相同的隊列中。

  5. 主題模型

    生產者將消息發送到交換機,交換機工作在topic主題模式,交換機將消息發送到binding key的pattern與routing key匹配的隊列中。

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