1 設計分布式系統需要考慮的異常 1.1 節點宕機 1.2 網絡異常 消息丟失、消息亂序(可以通過增加序列號解決)以及數據錯誤 1.3 分布式系統三態 在單機,只要不宕機,一個函數執行要么成功、要么失敗,但是分布式系統共下存在成功、失敗和超時。下面解釋一下超時的不確定性 ...
分布式系統中故障不可避免,所以為了提高可用性一定要做彈力設計,也就是容錯設計。 常見的容錯手段有: 隔離設計 異步通信 冪等設計 隔離設計 隔離分為兩種,一種是以服務為種類來做隔離,另一種是以用戶為種類來做分離。 服務維度的隔離是指不同的服務種類設計成獨立的系統,比如電商平台,將用戶注冊登陸設計為一個系統,商品中心設計為另一系統,評論和社交設計為一個系統。這三個系統彼此相互獨立,互不耦合,這三個系 ...
2020-04-06 22:08 0 759 推薦指數:
1 設計分布式系統需要考慮的異常 1.1 節點宕機 1.2 網絡異常 消息丟失、消息亂序(可以通過增加序列號解決)以及數據錯誤 1.3 分布式系統三態 在單機,只要不宕機,一個函數執行要么成功、要么失敗,但是分布式系統共下存在成功、失敗和超時。下面解釋一下超時的不確定性 ...
寫在最前: 1.為什么學習並記錄分布式設計理念一系列相關的東西 在日常工作中系統設計評審的時候,經常會有一些同事拋出一些概念,高可用性,一致性等等字眼,他們用這些最基本的概念去反駁系統最初的設計,但是很多人理解的可用性,一致性等等問題,都是自己拍腦袋想的,或者根本和最原始表達的意思就不是一個 ...
在微服務架構下,我們在完成一個訂單流程時經常遇到下面的場景: 一個訂單創建接口,第一次調用超時了,然后調用方重試了一次 在訂單創建時,我們需要去扣減庫存,這時接口發生了超時,調用方 ...
前幾天聽了部門內朋春大牛講分布式緩存的一個技術分享,還是非常有收獲。 PPT如下: 這個分享的副標題是“簡單的事情從來不簡單”,這句話講得非常在理。緩存看似簡單,但要做“好”一個緩存系統也是很有講究的。 寫點自己的心得收獲吧: 1. ...
在大型系統中應用中,一個架構設計較好的應用系統,其總體功能肯定是由很多個功能模塊所組成的,而每一個功能模塊所需要的數據對應到數據庫中就是一個或多個表。而在架構設計中,各個功能模塊相互之間的交互點 越統一、越少,系統的耦合度就越低,系統各個模塊的維護性及擴展性也就越好。 在一個系統中特別是 ...
我們常常會聽說,某個互聯網應用的服務器端系統多么牛逼,比如QQ拉、微信拉、淘寶拉。那么,一個互聯網應用的服務器端系統,到底牛逼在什么地方?為什么海量的用戶訪問,會讓一個服務器端系統變得更復雜?本文就是想從最基本的地方開始,探尋服務器端系統技術的基礎概念。 承載量是分布式系統存在的原因 當一個 ...
WEB資源或API方法的冪等性是指一次和多次請求某一個資源應該具有同樣的副作用。冪等性是系統的接口對外一種承諾(而不是實現), 承諾只要調用接口成功, 外部多次調用對系統的影響是一致的。冪等性是分布式系統設計中的一個重要概念,對超時處理、系統恢復等具有重要意義。聲明為冪等的接口會認為外部調用 ...
一、緩存簡介 1.1 什么是緩存 緩存就是數據交換的緩沖區。緩存的本質是一個內存 Hash。緩存是一種利用空間換時間的設計,其目標就是更快、更近:極大的提高。 將數據寫入/讀取速度更快的存儲(設備); 將數據緩存到離應用最近的位置; 將數據緩存到離用戶最近的位置 ...