互联网|你看得上瘾的斗鱼,首次开源了自家项目
上个月 , 斗鱼将基于 Go 语言的微服务框架 Jupiter 开源 。 作为国内知名的互联网直播公司 , 这也是斗鱼首次以公司的名义正式推出开源项目 。
近年来 , 得益于日渐增长的高并发业务需求 , 微服务架构开始在国内逐渐普及 。 同时 , 专为高并发而生的 Go 语言及其相关生态在国内的发展也突飞猛进 。 目前 , 市面上主流的微服务架构包括 Spring cloud、Dubbo 等 , 并且都有团队为之专门推出了对应的 Go 版本 , 以充分发挥 Go 在微服务架构中的高并发优势 。
而网络直播正是一项高并发的业务 , 斗鱼的分布式业务模型一直让我们颇为好奇 。 为进一步了解斗鱼的 Jupiter 与其他主流微服务框架的区别 , 以及斗鱼内部技术栈的发展 , 我们第一时间邀请到了斗鱼 Go 团队研发工程师吕超 , 一起回顾了 Jupiter 的开源历程 , 以及斗鱼近几年的技术栈变化 。
【互联网|你看得上瘾的斗鱼,首次开源了自家项目】
本文插图
Jupiter 的诞生
据悉 , Jupiter 脱胎于斗鱼内部的 Golang 微服务框架 , 经过三年打磨、几百个服务的线上验证 , 并历经多机房建设、云化、容器化等多次基础架构演进 。 目前 , Jupiter 发布了 0.5.0 版本 , 基本涵盖了内部框架的主要功能 。 但因为内部框架含有许多定制的特性以及一些历史包袱 , 许多功能并没有完整释放出来 。 “ 我们也在整理 , 尽快把这部分功能释放出来 。 ”
那么斗鱼在搭建微服务架构的过程中 , 为什么不采用现成的微服务框架 , 而是选择自己“造轮子” , 重新创造了 Jupiter 呢?吕超告诉我们 , 斗鱼是在 2016 年底开始启用微服务架构的 , 也是在当时引入了 Go 技术栈 。
Jupiter 也不是一开始就构思好的 。 “ 刚开始 , 我们大量使用开源的类库来攒应用 。 开源类库的功能不足 , bug 没法及时修复 , 我们就二开 。 为了满足内部多技术栈通信的需求 , 我们开始编写统一的 RPC 框架 , 逐渐形成了早期的 Jupiter 。 ” 随着服务规模的增长 , 基础架构的演进 , Jupiter 也在不断成长为支持多应用场景、关注开发效率和治理效率 , 并能从容应对基础架构演进的微服务框架 。
作为一个成长中的开源项目 ,Jupiter 与市面上的 Spring Cloud、Dubbo 这类成熟的框架相比 , 并不算完美 。 “ 在功能上 ,Jupiter 还有许多不足 。 但 Jupiter 是 Go 原生的 , 采用的许多方案也都是 Go 生态里大家喜闻乐见的 , 比如 gRPC、ETCD、Prometheus、Jaeger 等 。 同时 , Jupiter 是面向服务治理的框架 , 对一些模块的处理比较开放 , 比如 echo、gin 这些都很容易集成进来 , 当然也包括各公司自研的 RPC 框架 。 ” 吕超表示 , 虽然目前的 Jupiter 还不是最完美的框架 , 但却是基于斗鱼多年的实际业务经验积累起来的 , 是目前最适合斗鱼的微服务架构 。
为什么选择 Go
Go 语言是由谷歌于 2009 年推出的一门相对比较新的编程语言 , 因其原生支持高并发的特性 , 被誉为云原生时代的容器语言 。 但 Go 在国内的起步较晚 , 目前 Go 相关的生态在国内还并不完善 , 甚至还有很多开发者仍对这门所谓的云原生时代新语言持观望态度 。 在与吕超的交流中我们得知 , 成立于 2014 年的斗鱼最开始使用的也不是 Go。
“ 斗鱼 Web 部门一开始使用的是 PHP , 一直到 2016 年底 , 为应对业务规模的快速增长 , 逐步引入 Go、Java 从而形成了多技术栈的局面 。 ” 吕超介绍说 , “ 引入 Go 也是看中了 Go 在高并发应用开发和容器化上的优势 , 事实上在随后两年的服务化工程中 , Golang 确实也展现了这种优势 。 ”
然而迁移到 Go 的过程并不容易 。 据吕超回忆 , “ 由弱类型语言转向强类型语言 , 类库的匮乏 , 以及 Go 在包管理功能上的混乱都给我们造成了不少的困难 。 但 Go 语言机制比较简单和直观 , 没有那么多花里胡哨的东西 , 这也带来一个潜在优势就是 Go 应用的重构和迭代成本是非常低的 , 这一定程度上降低了迁移的难度 。 ”
推荐阅读
- Spacex|卫星互联网轨道资源稀缺,中国航天如何与国际卫星界大亨竞争?
- 互联网|建行“数字人民币钱包”已上线 仅限部分测试地区开通
- 行业互联网|大华股份与大连量天科技签署战略合作协议
- 行业互联网|原创 估值2000亿!刘强东手中这张“独角兽”,成立时间竟然不到两年?
- 行业互联网|李炳忠15点正式官宣,realme成立2年,稳居全球第七!
- 互联网|同城跑腿配送生意好做吗?需要注意什么?
- 互联网|招生部门公号也有高仿?!微信回应:已清除三千多个
- 互联网|马云最重要一次蜕变,高考失利后蹬三轮遇见他,改变了其一生轨迹
- 行业互联网|中兴通讯发布2020年半年度报告 营业收入达472亿元
- 互联网乱侃秀|5nm芯片,有EDA软件设计费4000万美元,没有EDA要77亿美元?
