訊息佇列的元件
阿新 • • 發佈:2018-12-12
常用訊息佇列:
1.ActiveMQ
2.RabbitMQ
3.Kafka
4.RocketMQ(阿里巴巴訊息中介軟體,支援事務,未開源)
目的:
- 用來在服務與服務之間進行非同步通訊的
優勢:
- 流量肖鋒
- 任務非同步處理
- 解耦
RabbitMQ元件:
- broker:簡單來說就是訊息佇列伺服器實體。
- exchange:
- queue:訊息佇列載體,每個訊息都會被投入到一個或多個佇列
- binding:繫結,它的作用就是把exchange和queue按照路由規則繫結起來。
- routing key:路由關鍵字,exchange根據這個關鍵字進行訊息投遞。
- vhost:虛擬主機,一個broker裡可以開設多個vhost,用作不同使用者的許可權分離。
- producer:訊息生產者,就是投遞訊息的程式。
- consumer:訊息消費者,就是接受訊息的程式。
- channel:訊息通道,在客戶端的每個連線裡,可建立多個channel,每個channel代表一個會話任務。
訊息佇列的使用過程,如下:
(1)客戶端連線到訊息佇列伺服器,開啟一個channel。
(2)客戶端宣告一個exchange,並設定相關屬性。
(3)客戶端宣告一個queue,並設定相關屬性。
(4)客戶端使用routing key,在exchange和queue之間建立好繫結關係。
(5)客戶端投遞訊息到exchange。
exchange接收到訊息後,就根據訊息的key和已經設定的binding,進行訊息路由,將訊息投遞到一個或多個佇列裡。