進入與出入作為獨立集合
網路架構中的雙向圖
一個 雙向圖 將節點分為兩組,且只允許之間的邊(不允許同組內的邊)。
網路邊界具有自然的雙向結構:
- 進入側:外部客戶在一邊,內部服務在另一邊。邊:外部請求進入,內部回應出去。
- 出入側:內部服務在一邊,外部目的地在另一邊。邊:內部服務發起出入呼叫,外部回應返回。
不對稱性:
- 進入:來源組是無限的(任何人在網路上)。目的組是小的(幾個服務)。流量與用戶數量成比例。
- 出入:來源組是小的(幾個內部服務)。目的組是有限的(幾個已知夥伴)。流量與內部活動成比例。
單機設計 通過一個節點將雙向圖的兩個半部合併。該節點具有從外部(進入)和從內部(出入的反向)的所有節點。節點的負荷=兩側的總和。
分裂設計 保持雙向圖的兩個半部在分開的節點上。每個節點處理一個角色,並且使用其適當的擴展軸。
在分裂之前:切點無處不在
單一盒子:所有事情都在一個節點上
在分裂之前,一個代理盒子位於每個外部/內部對的連接中。在圖形術語中,它是一個 高次元的切點:其移除將使客戶端與所有後端、所有內部服務與所有外部夥伴之間的連接斷開。
在這個節點的連通性為1。任何干擾這個節點的事件(過程崩潰、網絡抖動、OOM殺死)都會將每個依賴的路徑斷開。
分裂後:切點被兩個輕量節點取代
將 ingress + egress 分割成兩個圖形節點,其中以前只有一个。每個節點現在只位於一個分裂半部:
- Ingress 節點:外部客戶到內部服務的分裂半部切點
- Egress 節點:內部服務到夥伴的分裂半部切點
菊花環在地質學上消失:在單一盒子圖中,試圖通過公共地址達到內部服務的外部對應服務的內部服務需要兩次穿過同一個節點(首先通過 egress 角色出發,然後通過 ingress 角色進入)。在分裂的圖中,轉送到達兩個不同的節點。
每個部分的連通性仍為1,但可以獨立替換兩個切點。添加第二個 ingress 代理提高 ingress 一邊的連通性為2,而不改變 egress 一邊。
每個部分的冗餘
生產環境通常運行 2+ ingress 代理(HA)以及 2+ egress 代理(HA)。每個部分的連通性都可以獨立提高。每個部分的容量可以根據需要水平擴展。
網絡分區耐受力
整合
您現在可以將網絡架構視為雙分類圖,識別切斷頂點,並根據半部分追蹤連通性。
將這一概念應用於網絡分區。
一個 網絡分區 是一個圖形切割:跨分區的邊失效;兩側繼續運作,但無法相互連接。
一個地理分布式系統有兩個數據中心通過單個互聯數據中心(inter-DC)鏈接相連。進入流量通過DC1進入;出流量通過DC1與外部夥伴通信;一些內部服務位於DC2,並通過DC1呼叫狀態操作。
陪讀筆記
陪讀筆記
這一幾何學課堂將主課堂中的 Ingress & Egress Separation(進入與出流量分離)重新表述為雙分類圖分析。
下一節的陪讀 geometry_of_failure_modes_and_blast_radius(失效模式與爆炸半徑)將之間中心性(識別瓶頸節點)與最小切割(界定爆炸半徑)之間的關係進行推導。
很好。