原创 怎麼做才能不丟消息?

現在主流的消息隊列產品都提供了非常完善的消息可靠性保證機制,可以做到在消息傳遞的過程中,即使發生網絡中斷或者硬件故障,也能確保消息的可靠傳遞、不丟消息。 絕大部分丟消息的原因都是由於開發者不熟悉消息隊列,沒有正確使用和配置消息隊列導致的。

原创 怎麼用消息隊列實現分佈式事務?

當消息隊列和事務聯繫在一起時,它指的是消息生產者和消息消費者之間如何保持數據一致性。 什麼是分佈式事務? 事務是指當我們進行若干項數據更新操作時,爲了保證數據的完整性和一致性,我們希望這些更新操作要麼都成功,要麼都失敗。而更新的數據,並不侷

原创 聊聊消息隊列中的基礎概念

我們在使用不同的消息隊列產品時,會遇到不同的“名詞”,今天我們今天來聊一些相關內容,包括隊列、主題、分區等。 消息隊列進化史 好的架構不是設計出來的,而是不斷演進得來的,消息隊列的發展歷史,也印證了這一點,消息隊列的消息模型主要包括兩類:

原创 我們要選擇哪個消息隊列產品?

圖靈獎得主弗雷德裏克·布魯克斯(Frederick P.Brooks Jr.)在他的經典著作《人月神話》中提出了“沒有銀彈”的觀點,在軟件工程中,每一個軟件系統,都具有獨特性,不存在像“銀彈”一樣的解決方案,可以解決一切問題。 對於消息隊列

原创 我們爲什麼要用消息隊列?

消息隊列是系統設計中存在時間最長的中間件之一,從系統有通信需求開始,就產生了消息隊列。 消息隊列的使用場景 在日常系統設計與實現的過程中,下面3種場景會涉及到消息隊列: 異步處理 流量控制 服務解耦 異步處理 典型的應用場景是秒殺系統,

原创 分佈式系統中的網絡分區問題

網絡分區問題 什麼是網絡分區? 網絡分區只在分佈式集羣中,節點之間由於網絡不通,導致集羣中節點形成不同的子集,子集中節點之間網絡互通,而子集與子集之間網絡不通。 如何判斷是否發生了網絡分區? 不同的集羣架構網絡分區的形態會有不同,可以從集中

原创 《分佈式技術原理與算法解析》學習筆記Day28

故障恢復 我們之前講過故障隔離,它的目的是對故障組件進行隔離,以避免影響系統中的其他組件,儘可能保證分佈式系統的可用性。 但是之後故障隔離還不夠,我們需要考慮進行故障恢復。 什麼是分佈式故障? 分佈式系統中的故障,可以分爲兩類: 物理故障

原创 《分佈式技術原理與算法解析》學習筆記Day27

故障隔離 什麼是故障隔離? 故障隔離,就是採用一定策略,以實現當某個模塊發生故障時,不會影響其他模塊繼續提供服務,以保證整個系統的可用性,它可以避免分佈式系統出現大規模的故障,甚至是癱瘓,降低損失。 分佈式故障隔離策略 分佈式系統中的故障策

原创 《分佈式技術原理與算法解析》學習筆記Day26

流量控制 什麼是流量控制? 網絡傳輸中的流量控制就是讓發送方發送數據的速度不要太快,這樣可以讓接收方來得及接收數據,通常使用滑動窗口的方式來實現。 滑動窗口是指在任意時刻,發送方都維持一個連續的允許發送的數據大小,稱爲發送窗口,接收方也會維

原创 《分佈式技術原理與算法解析》學習筆記Day25

負載均衡 負載均衡是分佈式可靠性中非常關鍵的一個問題,它在一定程度上反映了分佈式系統對業務處理的能力。 什麼是負載均衡? 負載均衡可以分爲兩種: 請求負載均衡,即將用戶的請求均衡的分發到不同的服務器進行處理。 數據負載均衡,即將用戶更新的

原创 《分佈式技術原理與算法解析》學習筆記Day24

分佈式緩存 在計算機領域,緩存是一個非常重要的、用來提升性能的技術。 什麼是分佈式緩存? 緩存技術是指用一個更快的存儲設備存儲一些經常用到的數據,供用戶快速訪問。 分佈式緩存是指在分佈式環境或者系統下,把一些熱門數據存儲到離用戶近、離應用近

原创 《分佈式技術原理與算法解析》學習筆記Day23

分佈式數據複製 我們在進行分佈式數據存儲設計時,通常會考慮對數據進行備份,以提高數據的可用性和可靠性,“數據複製技術”就是實現數據備份的關鍵技術。 什麼是數據複製技術? 在分佈式數據庫系統中,通常會設置主備數據庫,當主數據庫出現故障時,備數

原创 《分佈式技術原理與算法解析》學習筆記Day22

哈希與一致性哈希 在分佈式系統中,哈希和一致性哈希是數據索引或者數據分佈的常見實現方式。 數據分佈設計原則 在分佈式數據存儲系統中,做存儲方案選型時,一般會考慮以下因素: 數據均勻 數據穩定 節點異構性 隔離故障域 性能穩定性 數據均勻

原创 《分佈式技術原理與算法解析》學習筆記Day21

分佈式數據存儲三要素 什麼是分佈式數據存儲系統? 分佈式存儲系統的核心邏輯,就是將用戶需要存儲的數據根據某種規則存儲到不同的機器上,當用戶想要獲取指定數據時,再按照規則到存儲數據的機器中獲取。 分佈式存儲系統的三要素: 數據生產者 / 數

原创 《分佈式技術原理與算法解析》學習筆記Day20

CAP理論 什麼是CAP理論? CAP理論用來指導分佈式系統設計,以保證系統的可用性、數據一致性等。 C,Consistency,一致性,指所有節點在同一時刻的數據是相同的,即更新操作執行結束並響應用戶完成後,所有節點存儲的數據會保持相同