訊息佇列
一、訊息模型
-
點對點模型:訊息生產者向佇列中傳送一個訊息後,只能被一個消費者消費
-
釋出/訂閱:生產者傳送一個訊息,多個消費者從該頻道訂閱並消費
釋出訂閱模式使用非同步,生產者傳送完訊息後不等待返回,繼續工作。
- 與觀察者模式的區別:觀察者模式使用同步工作,生產者和消費者不透明,也就是生產者直到自己產生的訊息被哪個消費者消費了。而釋出訂閱非同步工作,生產者只管生產訊息,往頻道里一扔就不管了,不關心被消費者消費掉了。
二、應用場景
1、非同步處理:比如使用者註冊時傳送啟用郵件,把傳送郵件和驗證的工作給另一個程式處理,主程式發一個訊息給郵件程式,立即返回繼續處理後序邏輯。當然,這種應用需要系統允許非同步處理。
2、流量削峰:高併發情況下,將請求放到訊息佇列裡,由伺服器根據負載適時提取訊息處理。
3、應用解耦:各模組間不直接呼叫,通過訊息佇列選擇性訂閱訊息,完成呼叫。
三、可靠性
- 傳送端一定能將訊息放進佇列
實現方法:在本地建表,儲存資訊與業務資料,業務端的事務提交之後將訊息傳送到佇列,如果成功則刪除表中的資料,否則重傳 - 接收端一定能從佇列中收到訊息
實現方法:保證訊息具有唯一編號,並用日誌表記錄已經消費的訊息編號。
相關文章
- 訊息佇列系列一:訊息佇列應用佇列
- RabbitMQ 訊息佇列之佇列模型MQ佇列模型
- kafka 訊息佇列Kafka佇列
- 訊息佇列(MQ)佇列MQ
- [Redis]訊息佇列Redis佇列
- [訊息佇列]rocketMQ佇列MQ
- [訊息佇列]RabbitMQ佇列MQ
- Kafka訊息佇列Kafka佇列
- RabbitMQ訊息佇列MQ佇列
- 全面理解Handler-1:理解訊息佇列,手寫訊息佇列佇列
- rabbitmq訊息佇列原理MQ佇列
- 訊息佇列之 RocketMQ佇列MQ
- 訊息佇列二三事佇列
- MQ訊息佇列_RabbitMQMQ佇列
- 訊息佇列設計佇列
- 訊息佇列深入解析佇列
- 訊息佇列之 ActiveMQ佇列MQ
- 訊息佇列之RocketMQ佇列MQ
- 訊息佇列雜談佇列
- 訊息佇列之RabbitMQ佇列MQ
- 訊息佇列簡史佇列
- RabbitMQ訊息佇列(五):Routing 訊息路由MQ佇列路由
- 程式間通訊--訊息佇列佇列
- 訊息機制篇——初識訊息與訊息佇列佇列
- 什麼是訊息佇列?佇列
- 訊息佇列mq總結佇列MQ
- Python使用RocketMQ(訊息佇列)PythonMQ佇列
- SpringBoot:初探 RabbitMQ 訊息佇列Spring BootMQ佇列
- 使用Redis做訊息佇列Redis佇列
- PHP Kafka 訊息佇列使用PHPKafka佇列
- 知識分享--訊息佇列佇列
- 「訊息佇列」看過來!佇列
- [Redis]延遲訊息佇列Redis佇列
- 訊息佇列 大雜燴佇列
- 訊息佇列中的Oracle佇列Oracle
- Java面試—訊息佇列Java面試佇列
- 訊息佇列之概論佇列
- Redis實現訊息佇列Redis佇列