高併發系統設計 訊息佇列

2021-10-08 19:08:10 字數 379 閱讀 1977

該文章記錄極客時間《高併發系統設計》系列文章的相關知識點,供以後自己檢視。這篇文章主要介紹一下訊息佇列的使用。

訊息佇列一般有以下作用:非同步處理、解耦合和削峰填谷。

訊息佇列可能存在訊息丟失的情況,如何防止訊息丟失以及在訊息重複的場景,如何保證盡量不影響訊息最終的處理結果。訊息的丟失可以通過生產端的重試、訊息佇列配置集群模式以及消費端合理處理消費進度三種方式來解決;為了解決訊息的丟失通常會造成效能上的問題以及訊息的重複問題;通過保證訊息處理的冪等性可以解決訊息的重複問題

減少系統延遲需要從消費端和訊息佇列兩個層面來完成,在消費端的目標是提公升消費者的訊息處理能力,你能做的是:優化消費**提公升效能;增加消費者的數量(這個方式比較簡單)。訊息中介軟體,從兩方面考慮讀取效能問題:訊息的儲存;零拷貝技術。

訊息佇列處理高併發

用mq來將耗時比較長或者耗費資源的請求排隊,非同步處理,減輕伺服器壓力增加穩定性。如果是高併發的實時請求,我個人覺得不適用這個方案。如果是為了高併發,我覺得應該朝解決高併發的方向考慮。集群 分布式 動靜分離 資料庫讀寫分離之類的。web的話,只能客戶端頁面輪訓處理結果。因為,據我個人了解啊,現在we...

高併發之訊息佇列

比如乙個介面處理簡訊傳送,如果沒處理完就可以放入訊息佇列 然後等待介面處理,如果介面處理簡訊傳送失敗則可以再次放入訊息佇列,減少嘗試的次數和占用的執行緒,再次進行處理。舉幾個例子 業務系統觸發簡訊傳送申請,但簡訊傳送模組速度跟不上,需要將來不及處理的訊息暫存一下,緩衝壓力。就可以把簡訊傳送申請丟到訊...

高併發架構設計原則 訊息佇列

解耦 消峰 非同步 有abcd四個系統,a系統有一條資料需要傳給bcd,a系統不僅要關心資料傳送還要處理資料傳送bcd其中產生的異常,如b掛掉了怎麼辦,a是否重傳?如果使用訊息佇列,a系統只負責傳送訊息到訊息佇列,bcd消費訊息佇列中的訊息即可,a系統不關心訊息發給誰了,誰消費失敗了等等問題。類似於...