JupiterGo 微服务框架
Jupiter 是一个面向服务治理的 Golang 微服务框架,以开发效率和治理效率为核心目标,从统一开发规范、完善监控埋点、降低开发难度等多个维度帮助 Gopher 开发高性能、高可靠性的微服务框架。
Jupiter致力于将Go微服务框架标准化,统一错误码、日志、监控、注册、流控的Schema。做到微服务的各个模块可观测、可治理,管理微服务研发侧的全套生命周期。
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,配置中心,对服务实现了良好的可观测性,可控制性。
评论