- Jupiter 的诞生
- 为什么选择 Go
- 与其它微服务框架的区别
- 微服务架构的意义
- 拥抱开源的斗鱼
- 关于未来
上个月,斗鱼将基于 Go 语言的微服务框架 Jupiter 开源。作为国内知名的互联网直播公司,这也是斗鱼首次以公司的名义正式推出开源项目。
近年来,得益于日渐增长的高并发业务需求,微服务架构开始在国内逐渐普及。同时,专为高并发而生的 Go 语言及其相关生态在国内的发展也突飞猛进。目前,市面上主流的微服务架构包括 Spring cloud、Dubbo 等,并且都有团队为之专门推出了对应的 Go 版本,以充分发挥 Go 在微服务架构中的高并发优势。
而网络直播正是一项高并发的业务,斗鱼的分布式业务模型一直让我们颇为好奇。为进一步了解斗鱼的 Jupiter 与其他主流微服务框架的区别,以及斗鱼内部技术栈的发展,我们第一时间邀请到了斗鱼 Go 团队研发工程师吕超,一起回顾了 Jupiter 的开源历程,以及斗鱼近几年的技术栈变化。
Jupiter 的诞生
据悉,Jupiter 脱胎于斗鱼内部的 Golang 微服务框架,经过三年打磨、几百个服务的线上验证,并历经多机房建设、云化、容器化等多次基础架构演进。目前,Jupiter 发布了 0.5.0 版本,基本涵盖了内部框架的主要功能。但因为内部框架含有许多定制的特性以及一些历史包袱,许多功能并没有完整释放出来。“ 我们也在整理,尽快把这部分功能释放出来。”
那么斗鱼在搭建微服务架构的过程中,为什么不采用现成的微服务框架,而是选择自己“造轮子”,重新创造了 Jupiter 呢?吕超告诉我们,斗鱼是在 2016 年底开始启用微服务架构的,也是在当时引入了 Go