壯大國產開源陣容!斗魚首次開源自家項目
作者:猿妹
近年來,得益于日漸增長的高并發業務需求,微服務架構開始在國內逐漸普及,而近年來,國產的開源項目越來越多,這不,前不久,斗魚也擁抱開源,首次開源了自家項目。
近年來,得益于日漸增長的高并發業務需求,微服務架構開始在國內逐漸普及,而近年來,國產的開源項目越來越多,這不,前不久,斗魚也擁抱開源,首次開源了自家項目。
斗魚此次開源的是一套微服務治理框架——Jupiter ,經過三年的研發和打磨,最終得以開源在線上驗證。Jupiter能夠提供豐富的后臺功能,管理應用的資源、配置,應用的性能、配置等可視化。斗魚表示,之所以取名為Jupiter,是因為它是羅馬神話的眾神之神,在天界掌管諸神,在互聯網掌管所有微服務!
Jupiter的架構如下圖所示:
Jupiter具有以下功能特性:
- gRPC:基于官方 gRPC 開發,集成流控和多數據中心方式的服務注冊,支持多種 roundrobin,p2c 等負載均衡策略;
- 配置:使用 toml、yaml 方式管理配置,規范化核心配置,結合遠程配置中心,實現配置版本管理和更新,查看配置依賴關系;
- 日志:基于 zap 日志類庫,實現高性能日志庫,并對不同環境和條件,實現日志庫的自動降級,并對服務端,客戶端的慢日志通過配置條件,實現全部慢日志接入;
- 監控:基于 prometheus go sdk 類庫,實現對服務端,客戶端的數據監控,并與 prometheus、cond、etcd 數據打通,實現應用自動化數據采集;
- 數據庫:基于 gorm 的封裝,將數據庫的 trace,慢日志,監控進行了采集;
- 緩存:基于 go-redis 的封裝,將數據庫的 trace,慢日志,監控進行了采集,并實現了單個 redis、多從庫 redis,客戶端 redis 分片,服務端 redis 分片的 api;
- 系統錯誤碼:區分框架和業務的錯誤碼,將框架錯誤碼文檔自動生成,自動化的錯誤碼 SRE 分析工具;
- 工程化:基于服務標準、創建、開發、運行、治理等生命周期,完成了Jupiter對項目的工程化;
- 服務治理:基于監控,etcd,配置中心,對服務實現了良好的可觀測性,可控制性。
Jupiter Go正在快速迭代,v0.5.0包含了基本的架構骨架,后續還將添加更多功能,目前在Github標星1.8K,,感興趣的時候可以嘗試一下哦,最后附上Github地址:https://github.com/douyu/jupiter
責任編輯:張燕妮
來源:
開源最前線