您当前的位置:首页 > 电脑百科 > 程序开发 > 框架

斗鱼发布首个开源框架Jupiter

时间:2020-08-07 09:47:31  来源:中国新闻网  作者:

中新网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现在还处于用户体验产品的发展阶段。我们希望借助广大研发人员的力量,不断完善这套框架。未来我们希望这能够成为一套成熟的行业规范标准。”斗鱼方面表示。

来源:中国新闻网



Tags:斗鱼 Jupiter   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
中新网8月6日电 日前,斗鱼将基于Go语言的微服务框架Jupiter正式开源,这也奠定了斗鱼在国内GO语言开发领域的技术领先地位。作为国内领先的游戏直播平台,斗鱼从2014年成立至今,始...【详细内容】
2020-08-07  Tags: 斗鱼 Jupiter  点击:(84)  评论:(0)  加入收藏
▌简易百科推荐
近日只是为了想尽办法为 Flask 实现 Swagger UI 文档功能,基本上要让 Flask 配合 Flasgger, 所以写了篇 Flask 应用集成 Swagger UI 。然而不断的 Google 过程中偶然间发现了...【详细内容】
2021-12-23  Python阿杰    Tags:FastAPI   点击:(6)  评论:(0)  加入收藏
文章目录1、Quartz1.1 引入依赖<dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>2.3.2</version></dependency>...【详细内容】
2021-12-22  java老人头    Tags:框架   点击:(11)  评论:(0)  加入收藏
今天来梳理下 Spring 的整体脉络啦,为后面的文章做个铺垫~后面几篇文章应该会讲讲这些内容啦 Spring AOP 插件 (了好久都忘了 ) 分享下 4ye 在项目中利用 AOP + MybatisPlus 对...【详细内容】
2021-12-07  Java4ye    Tags:Spring   点击:(14)  评论:(0)  加入收藏
&emsp;前面通过入门案例介绍,我们发现在SpringSecurity中如果我们没有使用自定义的登录界面,那么SpringSecurity会给我们提供一个系统登录界面。但真实项目中我们一般都会使用...【详细内容】
2021-12-06  波哥带你学Java    Tags:SpringSecurity   点击:(18)  评论:(0)  加入收藏
React 简介 React 基本使用<div id="test"></div><script type="text/javascript" src="../js/react.development.js"></script><script type="text/javascript" src="../js...【详细内容】
2021-11-30  清闲的帆船先生    Tags:框架   点击:(19)  评论:(0)  加入收藏
流水线(Pipeline)是把一个重复的过程分解为若干个子过程,使每个子过程与其他子过程并行进行的技术。本文主要介绍了诞生于云原生时代的流水线框架 Argo。 什么是流水线?在计算机...【详细内容】
2021-11-30  叼着猫的鱼    Tags:框架   点击:(21)  评论:(0)  加入收藏
TKinterThinter 是标准的python包,你可以在linx,macos,windows上使用它,你不需要安装它,因为它是python自带的扩展包。 它采用TCL的控制接口,你可以非常方便地写出图形界面,如...【详细内容】
2021-11-30    梦回故里归来  Tags:框架   点击:(26)  评论:(0)  加入收藏
前言项目中的配置文件会有密码的存在,例如数据库的密码、邮箱的密码、FTP的密码等。配置的密码以明文的方式暴露,并不是一种安全的方式,特别是大型项目的生产环境中,因为配置文...【详细内容】
2021-11-17  充满元气的java爱好者  博客园  Tags:SpringBoot   点击:(25)  评论:(0)  加入收藏
一、搭建环境1、创建数据库表和表结构create table account(id INT identity(1,1) primary key,name varchar(20),[money] DECIMAL2、创建maven的工程SSM,在pom.xml文件引入...【详细内容】
2021-11-11  AT小白在线中  搜狐号  Tags:开发框架   点击:(29)  评论:(0)  加入收藏
SpringBoot开发的物联网通信平台系统项目功能模块 功能 说明 MQTT 1.SSL支持 2.集群化部署时暂不支持retain&will类型消 UDP ...【详细内容】
2021-11-05  小程序建站    Tags:SpringBoot   点击:(55)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条