消息队列的四大典型使用场景
關鍵詞: 消息隊列? ?業務解耦 最終一致性 錯峰流控 日志同步 Kafka RabbitMQ
聲明:本文并非原創,轉自華為云幫助中心的分布式消息服務(DMS)的用戶指南。客戶端連接方法通用,故摘抄過來分享給大家。
?
分布式消息服務可應用在多個領域,包括異步通信解耦、企業解決方案、金融支付、電信、電子商務、快遞物流、廣告營銷、社交、即時通信、手游、視頻、物聯網、車聯網等。
分布式消息服務可以應用但不局限于以下業務場景:
- 業務解耦
將業務中依賴其他系統同時屬于非核心或不重要的部分使用消息通知即可,無需同步等待其他系統的處理結果。
如電商網站在促銷期間搶購訂單,搶到的商品訂單信息放入消息隊列,出庫、發貨等后續會從隊列里讀取任務信息然后執行。
- 最終一致性
在交易或支付系統中,不同的子系統/模塊的狀態需要最終保持一致,或都成功或都失敗。子系統/模塊之間傳遞的數據不能丟失,需要有可靠消息傳遞,能保證業務的連續性。DMS可以用于子系統/模塊間的高可靠數據傳遞,實現兩者之間的事務最終一致,降低實現難度和成本。
例如用戶使用儲蓄余額購買理財產品。由于理財系統一般對理財申購交易采用日終統一處理,允許用戶的儲蓄余額與理財系統資金余額存在一定時間段的不一致,或者說中間狀態,因此,可以對理財產品的購買支付流程使用DMS服務的消息處理機制,保證儲蓄余額與理財余額的最終一致,同時避免系統間對賬不平。
- 錯峰流控
在電子商務系統或大型網站中,上下游系統處理能力存在差異,處理能力高的上游系統的突發流量可能會對處理能力低的某些下游系統造成沖擊,需要提高系統的可用性的同時降低系統實現的復雜性。電商大促銷等流量洪流突然來襲時,可以通過隊列服務堆積緩存訂單等信息,在下游系統有能力處理消息的時候再處理,避免下游訂閱系統因突發流量崩潰。消息隊列提供億級消息堆積能力,3天的保留時長,消息消費系統可以錯峰進行消息處理。
- 日志同步
應用通過可靠異步方式將日志消息同步到消息服務,再通過其他組件對日志做實時或離線分析,也可用于關鍵日志信息收集進行應用監控。
使用DMS實現日志同步一般按以下流程:
- 日志采集客戶端,負責用戶應用服務的日志數據采集,以發送消息方式寫入DMS消息隊列。
- DMS消息隊列,負責日志數據的接收、存儲和轉發管理。
- 日志處理應用,訂閱并消費DMS消息隊列中的日志數據。 圖1?日志同步示意圖
?說明:上圖中Scribe、Fluent、Flume、Logstash、Rsyslog為當前幾款主流的開源日志采集工具,Logstash、ElasticSearch、Kibana為開源日志分析工具。
- 日志同步
轉載于:https://www.cnblogs.com/husterindg/p/9115158.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
以上是生活随笔為你收集整理的消息队列的四大典型使用场景的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 5.30 Tree Traversal
- 下一篇: Android Error:Could