English· Español· Deutsch· Nederlands· Français· 日本語· ქართული· 繁體中文· 简体中文· Português· Русский· العربية· हिन्दी· Italiano· 한국어· Polski· Svenska· Türkçe· Українська· Tiếng Việt· Bahasa Indonesia

un

guest
1 / ?
back to lessons

在流量到達前識別瓶頸節點

介數中心性

在圖中的每一對節點之間,都存在一條最短路徑。節點 N 的介數中心性 = 所有最短路徑中經過 N 的比例。

具有高介數的節點位於許多其他節點對之間的路徑上。 如果它變慢,許多流量都會變慢。如果它失效,許多流量都會中斷。

架構解讀:高介數節點是每次架構審查都應格外關注的對象。它們同時是瓶頸、單點故障(SPOF)以及容量關鍵組件。它們通常是:

- DNS 供應商(位於每個客戶端與每個服務之間)

- 入口代理(Ingress proxy)(位於每個客戶端與每個後端之間)

- 資料庫主節點(位於每個後端與每個讀取操作之間)

- 身份驗證服務(位於每個使用者與每個授權操作之間)

無需測量即可偵測:僅憑圖拓撲即可識別具有高介數中心性的節點。您不需要流量數據,只需要架構圖。一個位於許多其他節點對之間的節點,在結構上具有關鍵性。

運營後果:高介數中心性的節點值得在以下方面獲得不成比例的重點投資:(1) 容量餘量,(2) 冗餘性,(3) 可觀測性,以及 (4) 事故應變手冊。

介數中心性:高亮顯示的節點位於大多數最短路徑上

某系統包含:100 個外部客戶端 -> 1 個 DNS -> 1 個 CDN 供應商 -> 3 個反向代理 -> 12 個後端副本 -> {1 個資料庫主節點, 2 個快取節點, 5 個外部 API 端點}。請依介數中心性(由高到低)對這些節點類別進行排名,並解釋為何排名前兩位的類別值得特別關注。

最小的割斷開最小的切片

以通俗語言解釋最小割定理

圖中兩個節點之間的最小割(min-cut)= 要將它們斷開,必須移除的最少邊(或節點)數量。

操作層面解讀:最小割限制了最壞情況下的爆炸半徑。如果「客戶端」與「資料庫」之間的最小割為 1 條邊(即單一代理),那麼失去這條邊就會使所有客戶端與資料庫斷開連接。如果最小割為 5,則需要同時失去 5 個元件才能完全斷開連接;這雖然是壞運氣,但影響範圍是有界的。

針對爆炸半徑進行設計:在每個重要邊界處提高最小割。使用多個代理;多個快取節點;資料中心之間的多條網路路徑。每增加一個,最小割就會增加 1。

以圖論術語解釋的防波堤模式(Bulkhead Pattern):將資源劃分為彼此之間不共享最小割的獨立子圖。由於邊不存在,一個子圖內的故障無法傳播到其他子圖。

直徑設定故障傳播距離

圖的直徑(Graph diameter)= 任意兩個節點之間最長的最短路徑。

故障傳播:當節點故障且重試流量回流時,它們會觸及上游節點,範圍最遠可達直徑距離。一個直徑為 3 的系統(客戶端 -> 代理 -> 後端 -> 資料庫)意味著資料庫故障會在重試風暴中影響 3 個上游層級。

含義:較短的直徑 = 更快的故障遏制,但也意味著更高的節點集中度。每種設計都有其權衡。

Min-cut as bound on blast radius; diameter as propagation distance

為真實架構計算最小割(Min-Cut)

一個架構:1 個 DNS、1 個 CDN、3 個反向代理、12 個後端副本、1 個資料庫主節點。

計算(或估算)三個邊界的最小割:(1) 外部用戶與反向代理層之間;(2) 反向代理層與後端層之間;(3) 後端層與資料庫主節點之間。對於每個邊界,請說明當該最小割被超過時,系統中何者會失效。

透過圖指標進行失效模式稽核

綜合應用

您現在可以識別高介數節點、計算每個邊界的最小割集,並透過直徑估算失效傳播距離。

同時應用這三項。

一個系統:50 個客戶端點 -> 1 個 DNS -> 2 個 CDN 節點 -> 4 個反向代理 -> 16 個後端副本 -> { 資料庫叢集(1 個主節點 + 2 個備用節點)、Redis 叢集(5 個節點)、3 個外部 API }。

稽核該系統:(1) 指出介數最高的節點,(2) 計算最關鍵邊界的最小割集,並 (3) 提出兩項具體的架構變更(每項變更都需提高某個邊界的最小割集,且需指明其強化的邊界)。

配套筆記

配套筆記

這堂幾何學課程透過圖指標(介數、最小割、直徑)重新詮釋了故障模式與爆炸半徑主課程。

最後一份配套筆記 geometry_of_observability_and_capacity 探討了 CDN PoP 覆蓋範圍的 Voronoi 單元、延遲三角形的光速下限,以及在代理層重新審視的排隊曲線。

做得很好。