環(huán)境:Spring Boot2.3.10 + RabbitMQ 3.8.12 + Erlang 23.2.5
1.1 RabbitMQ介紹
RabbitMQ是實現(xiàn)了高級消息隊列協(xié)議(AMQP)的開源消息代理軟件(亦稱面向消息的中間件)。RabbitMQ服務(wù)器是用Erlang語言編寫的。所有主要的編程語言均有與代理接口通訊的客戶端庫。1.2 RabbitMQ核心概念
Server:又稱Broker, 接受客戶端的連接,實現(xiàn)AMQP實體服務(wù),這里指RabbitMQ 服務(wù)器Connection:連接,應(yīng)用程序與Broker的網(wǎng)絡(luò)連接。
Channel:通信通道,幾乎所有的操作都在 Channel 中進(jìn)行,Channel是進(jìn)行消息讀寫的通道。客戶端可建立多個Channel:,每個Channel代表一個會話任務(wù)。(一個Socket連接可以創(chuàng)建多個Channel)
Virtual Host:虛擬主機,用于邏輯隔離,是最上層的消息路由。一個 Virtual Host 里面可以有若干個 Exchange(交換機)和 Queue(隊列)。
Binding:Exchange 和 Queue 之間的虛擬綁定關(guān)系。
Routing key:一 個路由規(guī)則,虛擬機可用它來確定如何路由一個特定消息,即交換機綁定到 Queue 的鍵。支持模式匹配,* 和#,*用來匹配一個單詞,#用來匹配多個單詞(可以是0個)這里的通配符只有在exchange的類型為topic才有效。
Queue:也稱為Message Queue,消息隊列,保存消息并將它們轉(zhuǎn)發(fā)給消費者。(接收端通過監(jiān)聽Queue來接受消息)。
Message:消息,服務(wù)器和應(yīng)用程序之間傳送的數(shù)據(jù),由 Properties 和 Body 組成。Properties 可以對消息進(jìn)行修飾,比如消息的優(yōu)先級、延遲,過期時間,消息大小等高級特性;,Body 則就 是消息體內(nèi)容。
Exchange類型:如下四種類型:fanout,headers,direct,topic。