訊息佇列的元件

2021-08-28 12:59:05 字數 806 閱讀 9076

常用訊息佇列:

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,進行訊息路由,將訊息投遞到乙個或多個佇列裡。

基於訊息佇列的日誌元件

日誌支援的儲存方式有 文字,xml,資料庫三種。如果採用資料庫方式,支援的資料庫有sql server oracle。日誌採用讀寫分離的方式,客戶端傳送日誌到訊息佇列,然後服務端程式讀取訊息佇列,根據配置資訊,將訊息佇列中的日誌寫入載體 文字 xml 資料庫 如果採用資料方式,不需要配置path節點...

小 巧 快訊息佇列元件beanstalkd

1 beanstalkd是什麼?beanstalkd是乙個高效能,輕量級的分布式記憶體佇列 2 beanstalkd特性 支援優先順序 支援任務插隊 延遲 實現定時任務 持久化 定時把記憶體中的資料刷到binlog日誌 預留 把任務設定成預留,消費者無法取出任務,等某個合適時機再拿出來處理 任務超時...

訊息佇列 訊息佇列

輪詢排程 一次性分發所有訊息,保證訊息平均分配,不管消費者是否能正常消費 訊息應答 保證消費端能確實消費,不丟失 公平 乙個乙個分發所有訊息,在保證分發到的執行緒確認回覆後,才分發下個訊息給下個空閒的消費者,訊息持久化 保證佇列中的訊息不丟失,包括3要素 交換器 訊息佇列 訊息都必須宣告持久化 發布...