发布时间:2025-12-15 17:45:57 浏览次数:1
Jupiter是斗鱼开源的一个面向服务治理的Golang微服务框架,以开发效率和治理效率为核心目标,从统一开发规范、完善监控埋点、降低开发难度等多个维度帮助Gopher开发高性能、高可靠性的微服务框架。
Jupiter 是斗鱼开源的一套微服务治理框架,提供丰富的后台功能,管理应用的资源、配置,应用的性能、配置等可视化。
Jupiter 是一个面向服务治理的 Golang 微服务框架,以开发效率和治理效率为核心目标,从统一开发规范、完善监控埋点、降低开发难度等多个维度帮助 Gopher 开发高性能、高可靠性的微服务框架。
Jupiter 是罗马神话的众神之神,在天界掌管诸神,在互联网掌管所有微服务!
致力于将 Go 微服务框架标准化,统一错误码、日志、监控、注册、流控的 Schema。将微服务的各个模块可观测、可治理,管理微服务研发侧的全套生命周期。
要求 Go version>=1.13 and GO111MODULE=on
go get -u github.com/douyu/jupiter/tools/jupitercd /path/to/workspacejupiter new jupiter-demo目前大部分框架侧重点大部分在协议和编解码,过度的关注于技术细节,框架在投入生产环节会带来一堆工程问题。
因此 Jupiter 瞄准于企业级的工程化方案,将服务的标准、创建、开发、运行、治理整个生命周期作为 Jupiter 的一部分,以工程效率、工程质量、工程可靠性等为指标,解决了公司大量的工程化问题,降低了研发人员的开发成本。
工程化的管理使得可以保质保量的对项目进行开发,这种理念正是现在业界所缺少的。
衡量一个框架的好坏,除了提供高性能 RPC 通信以外,还要包括提供优质的服务治理能力。
Jupiter 经历了多个版本的迭代以后,目前的服务治理能力在业界内是非常出色的。
Web 开发和运维技术在不断的发展,短短几年已涌现出了非常多的计算形态,如云计算、边缘计算、容器化、网格化、Serverless 等。服务保障技术方面,异地多活、混沌工程也在不断发展。
语言栈方面,很多公司也在从早期单一的 PHP、Java 栈扩大到多语言栈并存的局面,特别是近年来 Golang 因在容器化和运维效率上的优势,越来越多的被应用到 Web 服务开发。但每次技术迭代,享受效率提升的同时,也在不断经历应用改造和迁移的痛苦。
以斗鱼为例,从 2016 年底开始改造基础设施,启动应用服务化建设。短短三年就经历了公有云、异地多活、容器化部署等阶段,目前也在部分业务中探索边缘计算和 Serverless 等新的计算形态。2017 年开始,将语言栈从单一的 PHP 扩展为以 Golang、Java、PHP 为主的多语言栈,随之而来的是多 RPC 协议的混战,http1.1、dubbo、gRPC、私有 RPC 协议纷繁冗杂,联调效率极低。经过一段时间的迭代,目前已基本统一为外部调用以 http1.1 为主、内部调用以 gRPC 为主,减少自定义 RPC 协议的使用。
从 Golang 应用的角度来看,面临的是一个在不断变化的运行环境和持续丰富的外部环境,这将不断的产生新的问题,比如:
不同于传统 RPC 框架和微服务治理框架,Jupiter 从一开始就以应用为中心,定位为一个微服务应用的运行时。在历次技术架构,如:
中,Jupiter 有效的降低了应用迁移和升级的成本,期间也积累了许多架构经验。未来也必将在
等计算形态中,发挥重要的作用。
开发效率是基础框架和类库的核心关注点之一,Jupiter 从一开始就挑选和使用了大量开源类库,但也因此带来了若干问题:
基于上述原因,在基础框架和类库中,对主要应用场景常用的类库都增加了一层封装,尽量减少对第三方类库的直接使用。封装的方法有:
基于以上方法,Jupiter 既提高了开发效率,也有效的降低了开发风险。
同时,Jupiter 为封装的第三方类库和自研类库提供了统一的治理能力,包括:
Web 后台技术在设计、开发、部署、运维各个阶段都在快速发展,微服务应用架构方法、运行环境和治理环境也都在不断变化。 基础框架作为沟通业务逻辑和运行环境、治理环境的媒介,是稳定业务的重要手段。