JupiterGo 微服务框架

联合创作 · 2023-09-20 02:33

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,配置中心,对服务实现了良好的可观测性,可控制性。
浏览 5
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报