1. 程式人生 > >學習之路-RabbitMQ(一):什麼是RabbitMQ

學習之路-RabbitMQ(一):什麼是RabbitMQ

**

RabbitMQ

**
MQ全稱為Message Queue,即訊息佇列, RabbitMQ是由erlang語言開發,基於AMQP(Advanced Message Queue 高階訊息佇列協議)協議實現的訊息佇列,它是一種應用程式之間的通訊方法,訊息佇列在分散式系統開 發中應用非常廣泛。RabbitMQ官方地址:http://www.rabbitmq.com/
開發中訊息佇列通常有如下應用場景:
1、任務非同步處理。 將不需要同步處理的並且耗時長的操作由訊息佇列通知訊息接收方進行非同步處理。提高了應用程式的響應時間。 2、應用程式解耦合
MQ相當於一箇中介,生產方通過MQ與消費方互動,它將應用程式進行解耦合。

為什麼使用RabbitMQ:
1、使得簡單,功能強大。
2、基於AMQP協議。
3、社群活躍,文件完善。
4、高併發效能好,這主要得益於Erlang語言。
5、Spring Boot預設已整合RabbitMQ

AMQP:
AMQP是一套公開的訊息佇列協議,它旨在從協議層定義訊息通訊資料的標準格式,與開發語言無關
JMS:
JMS是java提供的一套訊息服務API標準,其目的是為所有的java應用程式提供統一的訊息通訊的標準,類似java的 jdbc,只要遵循jms標準的應用程式之間都可以進行訊息通訊。
說明:
jms是java語言專屬的消 息服務標準,它是在api層定義標準,並且只能用於java應用;而AMQP是在協議層定義的標準,是跨語言的 。
RabbitMQ的工作原理:


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、消費者接收到訊息