訊息佇列:是分布式系統中重要的元件,主要解決應用耦合,非同步訊息,流量削鋒等問題,實現高效能,高可用,可伸縮和最終一致性架構,是大型分布式系統不可缺少的中介軟體
使用場景:
使用者註冊成功後,傳送註冊郵件,再傳送註冊簡訊
序列方式:將註冊資訊寫入資料庫成功後,向使用者傳送郵件,在傳送註冊簡訊,將結果放回給客戶端
並行方式:將註冊資訊寫入資料庫成功後,傳送註冊郵件的同時,傳送註冊簡訊,以上三個任務完成後,返回給客戶端
訊息佇列:將註冊資訊寫入資料庫成功後,註冊資訊寫入訊息佇列,傳送郵件和簡訊的消費者非同步讀取訊息佇列,寫入訊息佇列即返回給客戶端
場景說明:使用者下單後,訂單系統需要通知庫存系統
傳統方式:訂單系統呼叫庫存系統的介面
訊息佇列:
訂單系統:使用者下單後,訂單系統完成持久化處理,將訊息寫入訊息佇列,返回使用者訂單下單成功
庫存系統:訂單下單的訊息,採用拉/推的方式,獲取下單資訊,庫存系統根據下單資訊,進行庫存操作
場景說明:秒殺活動,一般會因為流量過大,導致流量暴增
傳統方式:服務端突然介面來自前端的大量訂單請求
訊息佇列:在應用前端加入訊息佇列
1 使用者的請求,伺服器接收後,首先寫入訊息佇列。加入訊息佇列超過最大數量,則直接拋棄使用者請求或跳轉到錯誤頁面
2 秒殺業務根據訊息佇列的請求資訊,再做後續處理
解決大量日誌傳輸的問題
日誌採集客戶端,負責日誌資料採集,寫入kafka佇列
ka***訊息佇列,負責日誌資料的介面,儲存和**
日誌處理應用:訂閱並消費kafka佇列中的日誌資料
點對點訊息佇列,或者聊天室
客戶端a和客戶端b使用同一佇列,進行訊息通訊
客戶端a和客戶端b,客戶端n訂閱同一主題,進行訊息發布和接收
主要產品
activemq,rabbitmq,zeromq,kafka,metamq,rocketmq等
訊息佇列使用場景
1 非同步處理 減少等待時間,更快的返回處理結果,提高系統效能以及更好的使用者體驗。fe 在乙個秒殺系統中,可能需要如下幾步 風險控制,鎖定庫存,生成訂單,訊息通知以及統計資料,在未優化的情況下,使用者請求到達閘道器後進入服務端要至少 經歷這五個步驟,但是對於秒殺系統而言關鍵的步驟在於風險控制和鎖定...
訊息佇列的使用場景
知乎 假設使用者在你的軟體中註冊,服務端收到使用者的註冊請求後,它會做這些操作 校驗使用者名稱等資訊,如果沒問題會在資料庫中新增乙個使用者記錄 如果是用郵箱註冊會給你傳送一封註冊成功的郵件,手機註冊則會傳送一條簡訊 分析使用者的個人資訊,以便將來向他推薦一些志同道合的人,或向那些人推薦他 傳送給使用...
訊息佇列的使用場景
場景說明 使用者註冊後,需要發註冊郵件和註冊簡訊。傳統的做法有兩種1.序列的方式 2.並行方式。2 並行方式 將註冊資訊寫入資料庫成功後,傳送註冊郵件的同時,傳送註冊簡訊。以上三個任務完成後,返回給客戶端。與序列的差別是,並行的方式可以提高處理的時間。假設三個業務節點每個使用50毫秒鐘,不考慮網路等...