標籤:規模 傳統 擴容 控制 ges idt 如何 能力 不同的
一個分布式即時系統叢集動輒上百台機器,叢集的規模已經限定這將是一個”封閉“的系統。你不可能再一台台去操作上百台機器,傳統的人工營運方式早已不能滿足當下需要,所有對叢集或者叢集中某個節點的操作都必需通過系統提供介面來完成。對於一個商用的分布式即時系統來說,如何應對突然出現的業務高峰;及時檢測出叢集中的故障節點並進行善後處理;對於叢集內處理能力不同的節點進行負載平衡調節;系統因過大壓力崩潰前進行過載保護;測試容器與運營容器同網測試的灰階發布能力等等。這些都是系統管理模組需要去解決的問題,也是一個系統能否商用,足夠智能的關鍵計量。
系統管理模組分為服務(SmartService)和管理(SmartManger)兩部分。SmartService基於RESTful的介面,來對外提供各類對叢集的查詢和操作介面,可以方便和各類管理終端(PC、iOS、Android)對接,實現介面管理。完善的架構還提供輕鬆的二次開發介面,方便定製系統專屬介面。如:調整記錄層級、單號碼日誌跟蹤、叢集組態管理、叢集即時拓撲資料查詢等等。幾百台機器的叢集,人工維護已不再現實,自動檢測和自主營運已成為關鍵,SmartManger的自動負載管理功能就是用來完成這部分功能的。另外,系統管理模組是與狀態中心、通訊平台相互配合工作的,三者缺一不可。
下面將詳細介紹各個特色功能:
一、自動負載管理
根據業務容器節點為上報的時延、類型、流量等資訊,綜合叢集所有節點的資訊,判斷叢集目前是否存在如下情況,並根據情況做出相應的應對動作。
1. 某個容器存在故障,不能正常處理業務——故障節點退網
2. 某個容器處理能力不足,存在業務處理逾時情況——對節點流量控制
3. 某類容器處理能力不足,這類容器存在業務處理逾時情況——對這類容器進行擴容器操作
4. 某類容器處理能力富餘,這類容器的流量滿足縮容條件——對這類容器進行縮容操作
5. 叢集處理能力已達極限,可能出現系統崩潰的狀況——對叢集進行過載保護
二、故障節點自動退網
在業務節點遇到不可恢複的故障不再能正常處理業務,系統管理模組將自動檢出,並將故障節點退出業務叢集,以保證叢集正常運行。
三、節點流量控制
當某個節點處理能力不足時,如這個節點在做日誌跟蹤時,系統管理模組可以根據節點處理能力減少發往該節點的訊息數,做即時負載平衡。
四、動態擴縮容
當某類型業務容器處理能力不夠時,系統可以自動進行線上擴容,擴容期間業務不受影響。當處理能力富餘時,系統也會自動進行線上縮容,以讓出資源給需要業務。
五、節點過載保護
當整個叢集的處理能力已經達到極限時(不能再進行擴容操作),為了防止系統崩潰,可以根據業務的情況進行過載保護,如:對初始鑒權請求進行丟棄處理。
六、灰階發布
系統支援灰階發布能力,可以讓測試點節和正常業務節點同網運行,將讓測試號碼路由到測試節點進行處理,而不影響其它正常的號碼。
C++分布式即時應用程式框架——系統管理模組