1. 程式人生 > >訊息佇列的元件

訊息佇列的元件

常用訊息佇列:

1.ActiveMQ
2.RabbitMQ
3.Kafka
4.RocketMQ(阿里巴巴訊息中介軟體,支援事務,未開源)

目的:
  • 用來在服務與服務之間進行非同步通訊的
優勢:
  1. 流量肖鋒
  2. 任務非同步處理
  3. 解耦
RabbitMQ元件:
  1. broker:簡單來說就是訊息佇列伺服器實體。
  2. exchange:
  3. queue:訊息佇列載體,每個訊息都會被投入到一個或多個佇列
  4. binding:繫結,它的作用就是把exchange和queue按照路由規則繫結起來。
  5. routing key:路由關鍵字,exchange根據這個關鍵字進行訊息投遞。
  6. vhost:虛擬主機,一個broker裡可以開設多個vhost,用作不同使用者的許可權分離。
  7. producer:訊息生產者,就是投遞訊息的程式。
  8. consumer:訊息消費者,就是接受訊息的程式。
  9. channel:訊息通道,在客戶端的每個連線裡,可建立多個channel,每個channel代表一個會話任務。
訊息佇列的使用過程,如下:

(1)客戶端連線到訊息佇列伺服器,開啟一個channel。
(2)客戶端宣告一個exchange,並設定相關屬性。
(3)客戶端宣告一個queue,並設定相關屬性。
(4)客戶端使用routing key,在exchange和queue之間建立好繫結關係。
(5)客戶端投遞訊息到exchange。
exchange接收到訊息後,就根據訊息的key和已經設定的binding,進行訊息路由,將訊息投遞到一個或多個佇列裡。