rabbitmq基礎

1、概念介紹

MQ全稱爲Message Queue, 消息隊列(MQ)是一種應用程序對應用程序的通信方法。應用程序通過寫和檢索出入列隊的針對應用程序的數據(消息)來通信,而無需專用連接來鏈接它們。消 息傳遞指的是程序之間通過在消息中發送數據進行通信,而不是通過直接調用彼此來通信,直接調用通常是用於諸如遠程過程調用的技術。排隊指的是應用程序通過 隊列來通信。隊列的使用除去了接收和發送應用程序同時執行的要求。其中較爲成熟的MQ產品有IBM WEBSPHERE MQ。

RabbitMQ的結構圖如下:

 

幾個概念說明:

Broker:簡單來說就是消息隊列服務器實體。

Exchange:消息交換機,它指定消息按什麼規則,路由到哪個隊列。

Queue:消息隊列載體,每個消息都會被投入到一個或多個隊列。

Binding:綁定,它的作用就是把exchange和queue按照路由規則綁定起來。

Routing Key:路由關鍵字,exchange根據這個關鍵字進行消息投遞。

vhost:虛擬主機,一個broker裏可以開設多個vhost,用作不同用戶的權限分離。

producer:消息生產者,就是投遞消息的程序。

consumer:消息消費者,就是接受消息的程序。

channel:消息通道,在客戶端的每個連接裏,可建立多個channel,每個channel代表一個會話任務。

2、特點

MQ的消費-生產者模型的一個典型的代表,一端往消息隊列中不斷的寫入消息,而另一端則可以讀取或者訂閱隊列中的消息。MQ和JMS類似,但不同的是JMS是SUN JAVA消息中間件服務的一個標準和API定義,而MQ則是遵循了AMQP協議的具體實現和產品。

3、大概過程

(1)客戶端連接到消息隊列服務器,打開一個channel。

(2)客戶端聲明一個exchange,並設置相關屬性。

(3)客戶端聲明一個queue,並設置相關屬性。

(4)客戶端使用routing key,在exchange和queue之間建立好綁定關係。

(5)客戶端投遞消息到exchange。

exchange接收到消息後,就根據消息的key和已經設置的binding,進行消息路由,將消息投遞到一個或多個隊列裏。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章