C++分布式實時應用框架 (Cpp Distributed Real-time Application Framework)
版權聲明:本文版權及所用技術歸屬smartguys團隊所有,對於抄襲,非經同意轉載等行為保留法律追究的權利!
在現今軟件系統紛紛“雲化”的浪潮下,各種支持“雲化”的框架、工具層出不窮,但這些現成的工具大多基於JAVA,go等語言,且應用場景均為非實時系統。但基於C++語言,且支持毫秒級響應、大吞吐量的分布式實時應用框架一直是這一領域的空白,Cpp Distributed Real-time Application Framework(CDRAF)也因此應運而生。
我們致力於將CDRAF打造成一款通用C++分布式實時系統框架,使之可以服務於任何一款對響應、吞吐量有高要求的業務系統——不管是游戲后台系統或者電信行業系統等等。用戶只要將原有業務代碼基於CDRAF做少許改動,就可以使用系統輕松地獲得所有"分布式實時系統"所具備的特性,如:
- 大吞吐量、低時延、模式多樣、穩定可靠的通訊平台
- 新節點啟動后自動注冊聯網,舊節點無需重啟
- 計算節點根據業務量自動動態擴縮容
- 單點故障不影響集群,故障節點自動檢測,自動退網
- 節點實時性能統計數據,自動上報
- 自動負載均衡,不同節點根據自身處理能力自動進行負載
- 過載保護,預防系統因流量過大而發生阻塞甚至引發宕機
- 優雅啟停,雙通道消息線路保證啟停過程中不丟消息
- 灰度發布,支持測試節點與正常業務節點同網測試
- 提供集群節點管理Restful接口,方便用戶做節點管理的二次開發
CDRSF核心由三個部分構成,分別是:通訊平台、狀態中心、系統管理。如下圖所示:
通訊平台:
➢ 具備低時延(毫秒級)、高吞吐量(200000pps/s級)的通訊能力
➢ 提供多樣化通訊方式(點對點、廣播、分發、單雙通道等)滿足各種業務需求
➢ 完全配置式的節點通訊關系,通訊與業務程序完全解耦
➢ 實時性性能統計輸出,實時應用程序監控管理
狀態中心:
➢ 提供新節點自動發現聯網運行,故障節點自動檢測退網的能力
➢ 各業務節點主動上報詳細的運行狀態數據,實時監控全網節點運行信息
➢ 具備向各業務節點下發管理命令能力
➢ 注冊、觸發機制保證所有命令、數據即刻到達
系統管理:
➢ 實現系統的自主管理及外部對系統的管理
➢ 自主管理提供了動態擴縮容、節點過載保護、故障節點重啟等能力
➢ 外部管理通過RESTful接口,提供了外部對系統進行各種操作的能力
(如:優雅關停節點、開關日志、單號碼日志跟蹤、容器測試等等)
整體系統架構圖:
通訊平台負責所有業務進程的通訊,包括進程間和節點間的通訊。SmartMonitor還可實時監控業務進程的心跳健康狀況,實時統計性能數據。SmartAgent實時上報每個節點的各種數據到狀態中心,並接受狀態中心下達的命令。SmartService根據系統運行狀況,對整個集群進程管理,同時也接受來自外部的命令,對系統進程各種操作。
技術交流合作QQ群:436466587 歡迎討論交流