欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

如何理解rabbitMQ的工作過程、消費模式、持久化、消息發送步驟等?

錢淋西2年前14瀏覽0評論

讓我們簡要介紹一下RabbitMQ的工作原理。

讓我們首先熟悉RabbitMQ的一些重要概念:

  • 生產者:發送消息的應用程序。

  • 消費者:接收消息的應用程序。

  • 隊列:存儲消息的緩沖區。

  • 消息:通過RabbitMQ從生產者發送給消費者的信息。

  • 連接:連接是應用程序和RabbitMQ代理之間的TCP連接。

  • 通道:通道是連接內的虛擬連接。當您從隊列中發布或使用消息時-它們都是通過通道完成的。

  • Exchange:接收來自生產者的消息,并根據交換類型定義的規則將其推送到隊列。要接收消息,需要將隊列綁定到至少一個交換。

  • 綁定:綁定是隊列和交換之間的鏈接。

  • 路由密鑰:路由密鑰是交換機查看的密鑰,用于決定如何將消息路由到隊列。路由密鑰就像消息的地址。

生產者將消息發送/發布給代理->消費者從代理接收消息。RabbitMQ是生產者和消費者之間的通信中間件,即使它們在不同的機器上運行。

當生產者向隊列發送消息時,它不會直接發送,而是使用交換機發送。下面的設計演示了主要的三個組件如何相互連接。

負責將消息路由到不同隊列的交換代理。這樣消息就可以從生產者接收到交換機,然后再次轉發到隊列。這被稱為“發布”方法。

消息將從隊列中獲取并消耗;這被稱為'消費'。

將消息發送到多個隊列

通過使用更復雜的應用程序,我們將擁有多個隊列。因此消息將在多個隊列中發送它。

向多個隊列交換發送消息通過綁定和路由密鑰連接到隊列。綁定是您設置為將隊列連接到交換機的“鏈接”。Routing鍵是一個消息屬性。在決定如何將消息路由到隊列時(取決于交換類型),交換機可能會查看此密鑰。

消息中心

消息不會直接發布到隊列,而是生成器將消息發送到交換機。一個交換負責的消息不同隊列的路由。一個交換接受來自生產應用程序的消息并將其路由消息隊列與綁定和路由鍵的幫助。阿結合是隊列和交換之間的鏈接。

RabbitMQ中的消息流

  • 該制片人將消息發布到交換。創建交換時,必須指定它的類型。稍后將詳細說明不同類型的交換。

  • 該交換接收消息,現在負責該消息的路由。交換機將不同的消息屬性考慮在內,例如路由密鑰,具體取決于交換類型。

  • 必須從交換到隊列創建綁定。在這種情況下,我們看到來自交換的兩個不同隊列的兩個綁定。Exchange根據郵件屬性將郵件路由到隊列中。

  • 消息留在隊列中,直到消費者處理它們

  • 消費者處理消息。

交換類型

  1. 直接:直接交換基于消息路由密鑰將消息傳遞到隊列。

  2. 扇出:扇出交換將消息路由到綁定到它的所有隊列。

  3. 主題:主題交換在路由密鑰和綁定中指定的路由模式之間進行通配符匹配。

  4. 標頭:標頭交換使用郵件標頭屬性進行路由。

RabbitMQ核心概念

在深入挖掘RabbitMQ之前,需要先介紹一些重要的概念。

  • 生產者:發送消息的應用程序。

  • 消費者:接收消息的應用程序。

  • 隊列:存儲消息的緩沖區。

  • 消息:通過RabbitMQ從生產者發送給消費者的信息。

  • 連接:連接是應用程序和RabbitMQ代理之間的TCP連接。

  • 通道:通道是連接內的虛擬連接。當您從隊列中發布或使用消息時-它們都是通過通道完成的。

  • Exchange:接收來自生產者的消息,并根據交換類型定義的規則將其推送到隊列。要接收消息,需要將隊列綁定到至少一個交換。

  • 綁定:綁定是隊列和交換之間的鏈接。

  • 路由密鑰:路由密鑰是交換機查看的密鑰,用于決定如何將消息路由到隊列。路由密鑰就像消息的地址。

  • AMQP:AMQP(高級消息隊列協議)是RabbitMQ用于消息傳遞的協議。

  • 用戶:可以使用給定的用戶名和密碼連接到RabbitMQ??梢詾槊總€用戶分配權限,例如在實例中讀取,寫入和配置權限的權限。