中新網(wǎng)8月6日電 日前,斗魚將基于Go語言的微服務(wù)框架Jupiter正式開源,這也奠定了斗魚在國內(nèi)GO語言開發(fā)領(lǐng)域的技術(shù)領(lǐng)先地位。
作為國內(nèi)領(lǐng)先的游戲直播平臺(tái),斗魚從2014年成立至今,始終致力于從技術(shù)上提升用戶的體驗(yàn),完成了平臺(tái)自研播放器的開發(fā),優(yōu)化了直播流的加載速度,針對(duì)高并發(fā)量、海量數(shù)據(jù)的處理進(jìn)行了技術(shù)優(yōu)化,徹底杜絕了當(dāng)海量用戶瞬間涌入平臺(tái)時(shí)無法響應(yīng)的情況。
據(jù)悉,Jupiter脫胎于斗魚內(nèi)部的Golang微服務(wù)框架,歷經(jīng)多機(jī)房建設(shè)、云化、容器化等多次基礎(chǔ)架構(gòu)演進(jìn),基本涵蓋了內(nèi)部框架的主要功能。經(jīng)過了三年打磨,超過30名斗魚技術(shù)人員的不斷優(yōu)化下,Jupiter已經(jīng)完成了10個(gè)大版本和99個(gè)小版本的迭代。而在超過500個(gè)業(yè)務(wù)場(chǎng)景的實(shí)際驗(yàn)證后,斗魚最終決定將這套微服務(wù)框架正式開源。
引入新語言,根本上解決高并發(fā)難題
Go語言是由谷歌于2009年推出的一門相對(duì)比較新的編程語言,因其原生支持高并發(fā)的特性,被譽(yù)為云原生時(shí)代的容器語言。從直播角度上來講,若在某個(gè)時(shí)間點(diǎn),直播平臺(tái)能夠承載大量的線上觀看人數(shù)而不影響播放品質(zhì),說明該平臺(tái)在出現(xiàn)高并發(fā)情況時(shí),優(yōu)化的比較到位。反之,如果平臺(tái)未能良好處理大量用戶同時(shí)涌入的問題,那就會(huì)導(dǎo)致服務(wù)器宕機(jī)。為了能夠給觀眾們帶來優(yōu)質(zhì)且穩(wěn)定的觀看體驗(yàn),斗魚在2016年開始嘗試使用GO語言重新編寫后臺(tái)代碼。
斗魚技術(shù)專家askuy表示,引入新技術(shù)的效果非常顯著,以前研發(fā)團(tuán)隊(duì)時(shí)常會(huì)擔(dān)心超人氣主播入駐平臺(tái)會(huì)不會(huì)引起“炸魚”,但在使用了GO語言后,平臺(tái)已經(jīng)完全可以承受千萬甚至過億級(jí)別的并發(fā)量。
不過,由于Go在國內(nèi)的起步較晚,相關(guān)的生態(tài)和工具在國內(nèi)都不完善,這是行業(yè)面臨的普遍問題。為了提高Go應(yīng)用的開發(fā)效率,斗魚研發(fā)團(tuán)隊(duì)決定開發(fā)微服務(wù)框架Jupiter。“我們希望把自己的經(jīng)驗(yàn)總結(jié)起來,形成一套有利的業(yè)務(wù)型框架。這樣一來,其他團(tuán)隊(duì)或公司在建立框架的時(shí)候,就可以減少基于業(yè)務(wù)功能的開發(fā),達(dá)到節(jié)省時(shí)間、提高效率的效果。”askuy解釋道。
2018年,經(jīng)過多年內(nèi)部打磨的Jupiter框架初步成型,斗魚武漢技術(shù)團(tuán)隊(duì)帶著這套框架在北京研發(fā)分部復(fù)制,維護(hù)成本低、效率高等優(yōu)點(diǎn)很快讓Jupiter在公司內(nèi)部得到普及,并且受到了廣泛好評(píng)。
期望推動(dòng)行業(yè)標(biāo)準(zhǔn)建設(shè)
盡管Jupiter不是最完美的框架,但卻是斗魚基于多年的實(shí)際業(yè)務(wù)經(jīng)驗(yàn)積累起來的。至少在公司內(nèi)部而言,Jupiter已經(jīng)成為最適合斗魚的微服務(wù)架構(gòu),但斗魚研發(fā)團(tuán)隊(duì)的目標(biāo)顯然不止于此。
2019年9月21日,斗魚和GopherChina在武漢聯(lián)合舉辦了Gopher Meetup武漢站,吸引了湖北省內(nèi)大量Go語言的研發(fā)人員進(jìn)行了技術(shù)交流會(huì)。會(huì)議上,斗魚發(fā)現(xiàn)從業(yè)者在Go語言的使用上依舊存在大量痛點(diǎn)難以解決,而行業(yè)內(nèi)也缺乏相關(guān)的成熟框架,于是決定面向所有大眾開源Jupiter,以此來解決行業(yè)普遍存在的微服務(wù)生態(tài)不完善、維護(hù)成本高等問題。經(jīng)過了近1年的優(yōu)化調(diào)整,斗魚最終在6月1日正式開源了微服務(wù)框架Jupiter,僅用1個(gè)半月就收獲了超過1800個(gè)關(guān)注度,并且連續(xù)多日霸占了Github網(wǎng)站的golang熱門開源項(xiàng)目排行榜榜首。
很快,斗魚在國內(nèi)Go語言開發(fā)領(lǐng)域的技術(shù)影響力迅速升溫,Jupiter建立的框架規(guī)范也得到了許多老牌產(chǎn)品的認(rèn)可,諸多Beego等老牌成熟框架都開始適配這套規(guī)范。通過開源Jupiter,斗魚技術(shù)團(tuán)隊(duì)全面的梳理了基礎(chǔ)框架的架構(gòu)設(shè)計(jì),總結(jié)了服務(wù)治理的經(jīng)驗(yàn)。同時(shí),開源社區(qū)的積極反饋也給斗魚的團(tuán)隊(duì)帶來了很多有價(jià)值的意見和建議。
“目前,Jupiter現(xiàn)在還處于用戶體驗(yàn)產(chǎn)品的發(fā)展階段。我們希望借助廣大研發(fā)人員的力量,不斷完善這套框架。未來我們希望這能夠成為一套成熟的行業(yè)規(guī)范標(biāo)準(zhǔn)。”斗魚方面表示。
來源:中國新聞網(wǎng)