1. 程式人生 > 其它 >RabbitMQ初步學習

RabbitMQ初步學習

技術標籤:訊息中介軟體rabbitmq

概念

RabbitMQ基於AMQP協議,erlang語言開發,對於資料一致性要求很高。

AMQP協議:

【Message】:訊息,由訊息頭和訊息體組成。訊息體是不透明的,而訊息頭則由一系列的可選屬性組成。
            這些屬性包括routing-key(路由鍵)priority(相對於其他訊息的優先權)、delivery-mode(指出該訊息可能需要永續性儲存)等。
【Publisher】:訊息的生產者,也是一個向交換器釋出訊息的客戶端應用程式。
【Exchange】:交換器。用來接收生產者傳送的訊息並將這些訊息路由給伺服器中的佇列。
             四種類型:direct
(預設)、fanout、topic和headers。 【Queue】:訊息佇列。用來儲存訊息直到傳送給消費者。它是訊息的容器,也是訊息的終點。 一個訊息可以投入一個或多個佇列。 【Binding】:繫結。用於訊息佇列和交換器之間的關聯。 一個繫結就是基於**路由鍵**將交換器和訊息佇列連線起來的路由規則,所以可以將交換器理解成一個由繫結構成的路由器。 Exchange和Binding可以是多對多的關係。 【Channel】:通道。多路複用連線中的一條獨立的雙向資料流通道。 通道是建立在真實的TCP連線內的虛擬連線,AMQP命令都是通過通道發出去的,不管是釋出訊息、訂閱佇列還是接收訊息,這些動作都是通過通道完成。 因為對於作業系統來說建立和銷燬TCP都是非常昂貴的開銷,所以引入通道的概念,用來複用一條TCP連線。 【Consumer】:消費者 【Virtual Host】:虛擬主機,表示一批交換器、訊息佇列和相關物件。 虛擬主機是共享相同的身份認證和加密環境的獨立伺服器域。 每個vhost本質就是一個mini版的RabbitMQ伺服器,擁有自己的佇列、交換器、繫結和許可權機制。 vhost是AMQP的基礎,必須在連線時指定,RabbitMQ預設的vhost是/
。 【Broker】:訊息佇列伺服器實體

在這裡插入圖片描述

docker安裝rabbitmq

參考:https://blog.csdn.net/qq_34775355/article/details/108305396

初步

pom.xml

<dependency>
   <groupId>com.rabbitmq</groupId>
   <artifactId>amqp-client</artifactId>
   <version>5.9.0</version>
</dependency>

配置虛擬主機vhost
在這裡插入圖片描述