1. 程式人生 > >RabbitMQ研究(一)

RabbitMQ研究(一)

RabbitMQ是基於AMQP(Message Queue高階訊息佇列協議),是由erlang語言開發
使用rabbitMQ的優點
1、使得簡單,功能強大。
2、基於AMQP協議。
3、社群活躍,文件完善。
4、高併發效能好,這主要得益於Erlang語言。
5、Spring Boot預設已整合RabbitMQ

JMS是什麼?
java message service java訊息服務,是一個java平臺中關於面向訊息中介軟體的api,jms相當於java api,而amqp是wire-protocol,amqp支援跨語言跨平臺。

RabbitMQ工作原理
在這裡插入圖片描述
Broker :訊息佇列服務程序,此程序包括兩個部分:Exchange和Queue。
Exchange :訊息佇列交換機,按一定的規則將訊息路由轉發到某個佇列,對訊息進行過慮。
Queue :訊息佇列,儲存訊息的佇列,訊息到達佇列並轉發給指定的消費方。
Producer :訊息生產者,即生產方客戶端,生產方客戶端將訊息傳送到MQ。
Consumer :訊息消費者,即消費方客戶端,接收MQ轉發的訊息。

-----傳送訊息-----
1、生產者和Broker建立TCP連線。
2、生產者和Broker建立通道。
3、生產者通過通道訊息傳送給Broker,由Exchange將訊息進行轉發。
4、Exchange將訊息轉發到指定的Queue(佇列)

----接收訊息-----
1、消費者和Broker建立TCP連線
2、消費者和Broker建立通道
3、消費者監聽指定的Queue(佇列)
4、當有訊息到達Queue時Broker預設將訊息推送給消費者。
5、消費者接收到訊息。
通道可以理解為一個大連線中的小連線(channel)