日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

RabbitMQ 关键词解释

發布時間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 RabbitMQ 关键词解释 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

源地址:?https://www.cnblogs.com/hz04022016/p/6518138.html

RabbitMQ是流行的開源消息隊列系統,用erlang語言開發。RabbitMQ是AMQP(高級消息隊列協議)的標準實現。

RabbitMQ中間件分為服務端(RabbitMQ Server)和客戶端(RabbitMQ Client),服務端可以理解為是一個消息的代理消費者,客戶端又分為消息生產者(Producer)和消息消費者(Consumer)。

  1、消息生產者(Producer):主要生產消息并將消息基于TCP協議,通過建立Connection和Channel,將消息傳輸給RabbitMQ Server,對于Producer而言基本就完成了工作。

  2、服務端(RabbitMQ Server):主要負責處理消息路由、分發、入隊列、緩存和出列。主要由三部分組成:Exchange、RoutingKey、Queue。

   ?(1)Exchange:用于接收消息生產者發送的消息,有三種類型的exchange:direct, fanout,topic,不同類型實現了不同的路由算法;

    A.?direct exchange:將與routing key 比配的消息,直接推入相對應的隊列,創建隊列時,默認就創建同名的routing key。

    B.?fanout exchange:是一種廣播模式,忽略routingkey的規則。

    C.?topic exchange:應用主題,根據key進行模式匹配路由,例如:若為abc*則推入到所有abc*相對應的queue;若為abc.#則推入到abc.xx.one ,abc.yy.two對應的queue。

   ?(2)RoutingKey:是RabbitMQ實現路由分發到各個隊列的規則,并結合Binging提供于Exchange使用將消息推送入隊列;

   ?(3)Queue:是消息隊列,可以根據需要定義多個隊列,設置隊列的屬性,比如:消息移除、消息緩存、回調機制等設置,實現與Consumer通信;

  3、消息消費者(Consumer):主要負責消費Queue的消息,同樣基于TCP協議,通過建立Connection和Channel與Queue傳輸消息,一個消息可以給多個Consumer消費;

  4、關鍵名詞說明:

  Publisher

? ? ? ? ? 是Message的生產者,Publisher這個Clients產生了一些Message。

  Consumer

? ? ? ? ? Message的消費者,Publisher產生的Message,最終要到達Consumer這個Clients,進行消費。

  Exchange

? ? ? ? ?指定消息按什么規則,路由到哪個Queue,Message消息先要到達Exchange,在Server中承擔著從Produce接收Message的責任。

  Queue

? ? ? ? ?到達Exchange的消息,根據制定的規則(Routing key)到達對應的Queue,在Server中承擔著裝載Message,是Message的容器,等待被消費出去。

  Routing key

? ? ? ? ?在Exchange和Queue之間隱藏有一條黑線,可以將這條黑線看成是Routing key,Exchange就是根據這些定義好的Routing key將Message送到對應的Queue中去,是Exchange和Queue之間的橋梁。

  Broker

? ? ? ? 之前一直不理解這個Broker,其實Broker就是接收和分發消息的應用,也就是說RabbitMQ Server就是Message Broker。

  VirtualHost

? ? ? ? 虛擬主機,一個Broker里可以開有多個VirtualHost,它的作用是用作不同用戶的權限分離。?

  Connection

? ? ? ?是Publisher/Consumer和Broker之間的TCP連接。斷開連接的操作只會在Publisher/Consumer端進行,Broker不會斷開連接,除非出現網絡故障或者Broker服務出現問題,Broker服務宕了。

  Connection: Channel:?

? ? ? ? 如果每一次訪問RabbitMQ就建立一個Connection,那在消息量大的時候建立TCP Connection的開銷就會很大,導致的后果就是效率低下。

轉載于:https://www.cnblogs.com/88phper/p/8329275.html

總結

以上是生活随笔為你收集整理的RabbitMQ 关键词解释的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。