一、RabbitMQ的三大模式
RabbitMQ的三大模式分別是:
- 點對點模式(Direct模式)
- 發布訂閱模式(Fanout模式)
- 主題模式(Topic模式)
其中,點對點模式是最簡單、也是應用最為廣泛的模式。
二、RabbitMQ有幾種模式
RabbitMQ共有六種模式:
- 點對點模式(Direct模式)
- 發布訂閱模式(Fanout模式)
- 主題模式(Topic模式)
- 頭部模式(Headers模式)
- RPC模式(Remote Procedure Call)
- 流模式(Stream模式)
三、RabbitMQ的五種模式
RabbitMQ的五種模式是指除了流模式以外的五種模式,即:
- 點對點模式(Direct模式)
- 發布訂閱模式(Fanout模式)
- 主題模式(Topic模式)
- 頭部模式(Headers模式)
- RPC模式(Remote Procedure Call)
四、RabbitMQ發布訂閱模式
發布訂閱模式(Fanout模式)是RabbitMQ中最簡單的模式之一。它將消息發布到所有已訂閱該交換機的隊列中,因此不需要指定Routing Key。這種模式的應用場景比如天氣預報,由多個不同的客戶端訂閱相同的天氣信息。
// Fanout模式發送信息代碼示例 const exchangeName = 'logs'; const message = 'Hello world!'; channel.assertExchange(exchangeName, 'fanout', { durable: false }); channel.publish(exchangeName, '', Buffer.from(message)); console.log(" [x] Sent %s", message);
五、RabbitMQ消息模式
消息模式(Direct模式)是RabbitMQ中最基礎的模式之一。它將消息發送到具有特定Routing Key的隊列中,以便只有需要該消息的消費者才能接收到它。這種模式的應用場景比如發送郵件,將郵件發送到特定的人。
// Direct模式發送信息代碼示例 const queueName = 'hello'; const message = 'Hello world!'; channel.assertQueue(queueName, { durable: false }); channel.sendToQueue(queueName, Buffer.from(message)); console.log(" [x] Sent %s", message);
六、RabbitMQ集群模式有幾種
RabbitMQ的集群模式有兩種:
- 鏡像隊列模式(Mirror Queue)
- 仲裁隊列模式(Quorum Queue)
鏡像隊列模式將隊列的所有消息在集群中的節點之間進行複製,以實現高可用性的目的。而仲裁隊列模式則採用Raft算法,通過仲裁節點對隊列中的消息進行複製和同步。
七、RabbitMQ常用工作模式
RabbitMQ常用的工作模式有:
- 簡單工作模式
- 工作隊列模式
- 發布訂閱模式
- 路由模式
- 主題模式
其中,發布訂閱模式和主題模式介紹過了,其他模式的詳細介紹可參考文末給出的代碼鏈接。
八、RabbitMQ隊列模式
RabbitMQ隊列模式分為兩種:
- 獨佔隊列(Exclusive Queue)
- 自動刪除隊列(Auto-delete Queue)
獨佔隊列只能被一個連接訪問,適用於在同一連接中處理帶有多個消息處理者的任務。而自動刪除隊列則在不再被使用時自動刪除,通常用在臨時隊列中。
參考資料
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/151612.html