1. 程式人生 > >RabbitMQ的核心概念以及AMQP協議

RabbitMQ的核心概念以及AMQP協議

前言

上一節從各個常用的mq的對比,拓撲圖以及叢集方案來做了對比,本節就針對rabbitMQ的基本的概念再深入的探討以及鞏固,為後續搭建多活架構做準備,本系列課程將同步慕課網,如果有需求的讀者,可以自行慕課網學習,探討。

RabbitMQ是基於AMQP協議

根據之前的人工智慧的專案,使用訊息佇列也是RabbitMQ來處理解耦的問題,而這裡的RabbitMQ的是基於AMQP協議,也就更加的滿足微服務架構裡面的不同的語言來開發單獨的服務,支援各種語言的開發。在這裡插入圖片描述

RabbitMQ效能取決於Erlang,經常用於交換機領域的架構模式,而且有著跟Netty一樣優秀的效能。在這裡插入圖片描述
由於AMQP是二級制協議,提供統一的服務應用協議,資訊從生產端到消費端,需要建立連線,經過虛擬機器,在通過交換機到訊息佇列,從而被消費端消費。
在這裡插入圖片描述

AMQP核心概念

大概由幾部分組成的,包括基層的連線開始

server,這個又稱為broker是建立連線的AMQP服務
connection,是連線,就是網路與broker之間的建立
channel,所有的訊息都是通過這個channel來進行讀寫,客戶端可以建立多個channel來進行處理任務。
message,屬於伺服器與程式之間的傳送資料,由於properties以及body組成,可以代表訊息的優先順序,延遲等等特性。
virtualhost,一個virtualhost包含多個交換機以及佇列,但是不能有相同交換機以及佇列,屬於邏輯隔離的概念。
exchange,交換機,跟訊息佇列進行繫結
binding,交換機與訊息佇列之間的虛擬連線,通過routingkey來建立
routingkey,路由規則
queue,佇列,用來承載互動機傳輸的訊息給消費端消費。

RabbitMQ整體的架構

通過下面這個圖就可以知道,生產端不需要訊息推送到那個佇列,消費端同樣不需要知道來自那個互動機傳輸過來的資料。
在這裡插入圖片描述
訊息的流轉的過程,從交換機到佇列是通過binding以及指定的路由規則來實現。
在這裡插入圖片描述