前言:分布式系統的三大基石
進入分布式時代,高可用性、容錯、負載均衡 成為系統設計的三大基本條件。分布式系統非操作系統,而是橫跨異構硬軟體的中間件橋梁,核心價值在於:
- 屏蔽特定硬體/OS/架構差異
- 以廉價資源堆疊實現極致性價比
集中式系統面臨的四大故障挑戰
- 伺服器硬體故障(硬碟損壞)
- 網路故障(交換機/路由器崩潰)
- 作業系統故障(Windows 藍屏)
- 軟體故障(記憶體洩漏)
分布式解決方案雙軌制
- 系統框架層:實現多路數據復制,故障自動恢復無需人工干預。
- 應用介面層:提供開發可靠、高可用分布式應用的編程介面。
傳統分布式框架的共性與缺陷
CORBA、DCOM/.NET、Java RMI/Jini/EJB 同具備:面向對象、Client/Server 遠程調用、模組化、高復用、互操作、可移植(DCOM 限 Windows)。
以 Java RMI 為例剖析痛點
- 基於 JRMP 協議,純 Java 環境下實現對象無縫遠程調用,跨平台部署無憂。
- 致命短板:JRMP 專為 Java 對象設計,無法與非 Java 語言互通。
- 一對多架構下的透明性缺失:Client 仍需知曉所有 Server 網路細節,調用非透明;Server 間缺乏調用一致性維護機制。
總結:RMI、DCOM 等傳統框架均未充分解決可靠性與高可用性需求,催生了 Object Group(組件群) 新概念。
組件群:分布式高可用的新範式
組件群 = 基於服務端對象的動態集合,成員間協作維持一致性,對外提供統一、可靠、高可用服務。客戶端視角無感知單點故障。
三大核心支撐服務
群組事件:Join、Leave、Merge、Partition、Crash。
1. 群組管理服務
處理動態成員變更與網路分區合併,維護群組拓撲一致性視圖。
2. 可靠多播服務
一對多通訊實現高可用核心。關鍵技術:多播通訊機制。
3. 狀態傳輸服務
同步成員狀態,確保所有節點擁有統一的群組視圖,是一致性的基石。