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