回覆列表
  • 1 # Java架構達人

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

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

    生產者:傳送訊息的應用程式。

    消費者:接收訊息的應用程式。

    佇列:儲存訊息的緩衝區。

    訊息:透過RabbitMQ從生產者傳送給消費者的資訊。

    連線:連線是應用程式和RabbitMQ代理之間的TCP連線。

    通道:通道是連線內的虛擬連線。當您從佇列中釋出或使用訊息時 - 它們都是透過通道完成的。

    Exchange:接收來自生產者的訊息,並根據交換型別定義的規則將其推送到佇列。要接收訊息,需要將佇列繫結到至少一個交換。

    繫結:繫結是佇列和交換之間的連結。

    路由金鑰:路由金鑰是交換機檢視的金鑰,用於決定如何將訊息路由到佇列。路由金鑰就像訊息的地址。

    生產者將訊息傳送/釋出給代理 - > 消費者從代理接收訊息。RabbitMQ是生產者和消費者之間的通訊中介軟體,即使它們在不同的機器上執行。

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

    訊息將從佇列中獲取並消耗; 這被稱為"消費"。

    將訊息傳送到多個佇列

    透過使用更復雜的應用程式,我們將擁有多個佇列。因此訊息將在多個佇列中傳送它。

    向多個佇列交換髮送訊息透過繫結和路由金鑰連線到佇列。繫結是您設定為將佇列連線到交換機的“連結”。Routing鍵是一個訊息屬性。在決定如何將訊息路由到佇列時(取決於交換型別),交換機可能會檢視此金鑰。

    訊息中心

    訊息不會直接釋出到佇列,而是生成器將訊息傳送到交換機。一個交換負責的訊息不同佇列的路由。一個交換接受來自生產應用程式的訊息並將其路由訊息佇列與繫結和路由鍵的幫助。阿結合是佇列和交換之間的連結。

    RabbitMQ中的訊息流

    該製片人將訊息釋出到交換。建立交換時,必須指定它的型別。稍後將詳細說明不同型別的交換。

    該交換接收訊息,現在負責該訊息的路由。交換機將不同的訊息屬性考慮在內,例如路由金鑰,具體取決於交換型別。

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

    訊息留在佇列中,直到消費者處理它們

    消費者處理訊息。

    交換型別

    直接:直接交換基於訊息路由金鑰將訊息傳遞到佇列。

    扇出:扇出交換將訊息路由到繫結到它的所有佇列。

    主題:主題交換在路由金鑰和繫結中指定的路由模式之間進行萬用字元匹配。

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

    RabbitMQ核心概念

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

    生產者:傳送訊息的應用程式。

    消費者:接收訊息的應用程式。

    佇列:儲存訊息的緩衝區。

    訊息:透過RabbitMQ從生產者傳送給消費者的資訊。

    連線:連線是應用程式和RabbitMQ代理之間的TCP連線。

    通道:通道是連線內的虛擬連線。當您從佇列中釋出或使用訊息時 - 它們都是透過通道完成的。

    Exchange:接收來自生產者的訊息,並根據交換型別定義的規則將其推送到佇列。要接收訊息,需要將佇列繫結到至少一個交換。

    繫結:繫結是佇列和交換之間的連結。

    路由金鑰:路由金鑰是交換機檢視的金鑰,用於決定如何將訊息路由到佇列。路由金鑰就像訊息的地址。

    AMQP:AMQP(高階訊息佇列協議)是RabbitMQ用於訊息傳遞的協議。

    使用者:可以使用給定的使用者名稱和密碼連線到RabbitMQ。可以為每個使用者分配許可權,例如在例項中讀取,寫入和配置許可權的許可權。

  • 中秋節和大豐收的關聯?
  • 有沒有喜歡學設計的朋友,ui專業怎麼樣?