MQ的基本概念

2022-09-26 04:54:13 字數 963 閱讀 5059

mq全稱 message queue(訊息佇列),是在訊息的傳輸過程中儲存訊息的容器。多用於分布式系統之間進

行通訊。

優勢:

應用解耦

系統的耦合性越高,容錯性就越低,可維護性就越低。使用 mq 使得應用間解耦,提公升容錯性和可維護性。

非同步提速

提公升使用者體驗和系統吞吐量(單位時間內處理請求的數目)。

削峰填谷

使用了 mq 之後,限制消費訊息的速度為1000,這樣一來,高峰期產生的資料勢必會被積壓在 mq 中,高峰

就被「削」掉了,但是因為訊息積壓,在高峰期過後的一段時間內,消費訊息的速度還是會維持在1000,直

到消費完積壓的訊息,這就叫做「填谷」。

使用mq後,可以提高系統穩定性。

劣勢:系統可用性降低

系統引入的外部依賴越多,系統穩定性越差。一旦 mq 宕機,就會對業務造成影響。如何保證mq的高可用?

系統複雜度提高

mq 的加入大大增加了系統的複雜度,以前系統間是同步的遠端呼叫,現在是通過 mq 進行非同步呼叫。如何

保證訊息沒有被重複消費?怎麼處理訊息丟失情況?那麼保證訊息傳遞的順序性?

一致性問題

a 系統處理完業務,通過 mq 給b、c、d三個系統發訊息資料,如果 b 系統、c 系統處理成功,d 系統處理

失敗。如何保證訊息資料處理的一致性?

① 生產者不需要從消費者處獲得反饋。引入訊息佇列之前的直接呼叫,其介面的返回值應該為空,這才讓明

明下層的動作還沒做,上層卻當成動作做完了繼續往後走,即所謂非同步成為了可能。

② 容許短暫的不一致性。

③ 確實是用了有效果。即解耦、提速、削峰這些方面的收益,超過加入mq,管理mq這些成本。

MQ基本概念

背景 之前做日誌收集模組時,用到flume。另外也有的方案,整合kafaka來提公升系統可擴充套件性,其中涉及到訊息佇列當時自己並不清楚為什麼要使用訊息佇列。而在我自己提出的原始日誌採集方案中不適用訊息佇列時,有幾個基本問題 1.日誌檔案上傳過程,有個基本的生產者 消費者問題 2.另外系統崩潰時,資...

基本概念 C 基本概念

由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...

基本概念 數控系統基本概念

第一章 基本概念 數控工具機cnc是一種按事先編制好的加工零件程式進行加工的高效 自動化加工裝置。是 computer numerical control machine tools 的簡稱。數控工具機較好地解決了複雜 精密 小批量 多品種的零件加工問題,是一種柔性的 高效能的自動化工具機。西門子系...