中新网8月6日电 日前,斗鱼将基于Go语言的微服务框架Jupiter正式开源,这也奠定了斗鱼在国内GO语言开发领域的技术领先地位。
作为国内领先的游戏直播平台,斗鱼从2014年成立至今,始终致力于从技术上提升用户的体验,完成了平台自研播放器的开发,优化了直播流的加载速度,针对高并发量、海量数据的处理进行了技术优化,彻底杜绝了当海量用户瞬间涌入平台时无法响应的情况。
据悉,Jupiter脱胎于斗鱼内部的Golang微服务框架,历经多机房建设、云化、容器化等多次基础架构演进,基本涵盖了内部框架的主要功能。经过了三年打磨,超过30名斗鱼技术人员的不断优化下,Jupiter已经完成了10个大版本和99个小版本的迭代。而在超过500个业务场景的实际验证后,斗鱼最终决定将这套微服务框架正式开源。
引入新语言,根本上解决高并发难题
Go语言是由谷歌于2009年推出的一门相对比较新的编程语言,因其原生支持高并发的特性,被誉为云原生时代的容器语言。从直播角度上来讲,若在某个时间点,直播平台能够承载大量的线上观看人数而不影响播放品质,说明该平台在出现高并发情况时,优化的比较到位。反之,如果平台未能良好处理大量用户同时涌入的问题,那就会导致服务器宕机。为了能够给观众们带来优质且稳定的观看体验,斗鱼在2016年开始尝试使用GO语言重新编写后台代码。
斗鱼技术专家askuy表示,引入新技术的效果非常显著,以前研发团队时常会担心超人气主播入驻平台会不会引起“炸鱼”,但在使用了GO语言后,平台已经完全可以承受千万甚至过亿级别的并发量。
不过,由于Go在国内的起步较晚,相关的生态和工具在国内都不完善,这是行业面临的普遍问题。为了提高Go应用的开发效率,斗鱼研发团队决定开发微服务框架Jupiter。“我们希望把自己的经验总结起来,形成一套有利的业务型框架。这样一来,其他团队或公司在建立框架的时候,就可以减少基于业务功能的开发,达到节省时间、提高效率的效果。”askuy解释道。
2018年,经过多年内部打磨的Jupiter框架初步成型,斗鱼武汉技术团队带着这套框架在北京研发分部复制,维护成本低、效率高等优点很快让Jupiter在公司内部得到普及,并且受到了广泛好评。
期望推动行业标准建设
尽管Jupiter不是最完美的框架,但却是斗鱼基于多年的实际业务经验积累起来的。至少在公司内部而言,Jupiter已经成为最适合斗鱼的微服务架构,但斗鱼研发团队的目标显然不止于此。
2019年9月21日,斗鱼和GopherChina在武汉联合举办了Gopher Meetup武汉站,吸引了湖北省内大量Go语言的研发人员进行了技术交流会。会议上,斗鱼发现从业者在Go语言的使用上依旧存在大量痛点难以解决,而行业内也缺乏相关的成熟框架,于是决定面向所有大众开源Jupiter,以此来解决行业普遍存在的微服务生态不完善、维护成本高等问题。经过了近1年的优化调整,斗鱼最终在6月1日正式开源了微服务框架Jupiter,仅用1个半月就收获了超过1800个关注度,并且连续多日霸占了Github网站的golang热门开源项目排行榜榜首。
很快,斗鱼在国内Go语言开发领域的技术影响力迅速升温,Jupiter建立的框架规范也得到了许多老牌产品的认可,诸多Beego等老牌成熟框架都开始适配这套规范。通过开源Jupiter,斗鱼技术团队全面的梳理了基础框架的架构设计,总结了服务治理的经验。同时,开源社区的积极反馈也给斗鱼的团队带来了很多有价值的意见和建议。
“目前,Jupiter现在还处于用户体验产品的发展阶段。我们希望借助广大研发人员的力量,不断完善这套框架。未来我们希望这能够成为一套成熟的行业规范标准。”斗鱼方面表示。
来源:中国新闻网