Jupiter是斗魚開源的一套微服務(wù)治理框架,提供豐富的后臺(tái)功能,管理應(yīng)用的資源、配置,應(yīng)用的性能、配置等可視化,致力于將Go微服務(wù)框架標(biāo)準(zhǔn)化,統(tǒng)一錯(cuò)誤碼、日志、監(jiān)控、注冊(cè)、流控的Schema。將微服務(wù)的各個(gè)模塊可觀測、可治理,管理微服務(wù)研發(fā)側(cè)的全套生命周期。
軟件特色
gRPC:基于官方 gRPC 開發(fā),集成流控和多數(shù)據(jù)中心方式的服務(wù)注冊(cè),支持多種 roundrobin,p2c 等負(fù)載均衡策略;
配置:使用 toml、yaml 方式管理配置,規(guī)范化核心配置,結(jié)合遠(yuǎn)程配置中心,實(shí)現(xiàn)配置版本管理和更新,查看配置依賴關(guān)系;
日志:基于 zap 日志類庫,實(shí)現(xiàn)高性能日志庫,并對(duì)不同環(huán)境和條件,實(shí)現(xiàn)日志庫的自動(dòng)降級(jí),并對(duì)服務(wù)端,客戶端的慢日志通過配置條件,實(shí)現(xiàn)全部慢日志接入;
監(jiān)控:基于 prometheus go sdk 類庫,實(shí)現(xiàn)對(duì)服務(wù)端,客戶端的數(shù)據(jù)監(jiān)控,并與 prometheus、cond、etcd 數(shù)據(jù)打通,實(shí)現(xiàn)應(yīng)用自動(dòng)化數(shù)據(jù)采集;
數(shù)據(jù)庫:基于 gorm 的封裝,將數(shù)據(jù)庫的 trace,慢日志,監(jiān)控進(jìn)行了采集;
緩存:基于 go-redis 的封裝,將數(shù)據(jù)庫的 trace,慢日志,監(jiān)控進(jìn)行了采集,并實(shí)現(xiàn)了單個(gè) redis、多從庫 redis,客戶端 redis 分片,服務(wù)端 redis 分片的 api;
系統(tǒng)錯(cuò)誤碼:區(qū)分框架和業(yè)務(wù)的錯(cuò)誤碼,將框架錯(cuò)誤碼文檔自動(dòng)生成,自動(dòng)化的錯(cuò)誤碼 SRE 分析工具;
工程化:基于服務(wù)標(biāo)準(zhǔn)、創(chuàng)建、開發(fā)、運(yùn)行、治理等生命周期,完成了Jupiter對(duì)項(xiàng)目的工程化;
服務(wù)治理:基于監(jiān)控,etcd,配置中心,對(duì)服務(wù)實(shí)現(xiàn)了良好的可觀測性,可控制性;