基于 Go 語言,斗魚發(fā)布首個(gè)開源框架 Jupiter
8月6日消息 今年6 月 1 日,斗魚將基于 Go 語言的微服務(wù)框架 Jupiter 正式開源。據(jù)悉,Jupiter 脫胎于斗魚內(nèi)部的 Golang 微服務(wù)框架,歷經(jīng)多機(jī)房建設(shè)、云化、容器化等多次基礎(chǔ)架構(gòu)演進(jìn),基本涵蓋了內(nèi)部框架的主要功能。
作為國內(nèi)游戲直播平臺(tái),斗魚從 2014 年成立至今,在技術(shù)上完成了平臺(tái)自研播放器的開發(fā),優(yōu)化了直播流的加載速度,針對高并發(fā)量、海量數(shù)據(jù)的處理進(jìn)行了技術(shù)優(yōu)化,徹底杜絕了當(dāng)海量用戶瞬間涌入平臺(tái)時(shí)無法響應(yīng)的情況。
Go 語言是由谷歌于 2009 年推出的一門相對比較新的編程語言,因其原生支持高并發(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 表示,使用 GO 語言后,平臺(tái)已經(jīng)完全可以承受千萬甚至過億級別的并發(fā)量。
2018 年,經(jīng)過多年內(nèi)部打磨的 Jupiter 框架初步成型,斗魚武漢技術(shù)團(tuán)隊(duì)帶著這套框架在北京研發(fā)分部復(fù)制,維護(hù)成本低、效率高等優(yōu)點(diǎn)很快讓 Jupiter 在公司內(nèi)部得到普及,并且受到好評。
盡管 Jupiter 不是最完美的框架,但卻是斗魚基于多年的實(shí)際業(yè)務(wù)經(jīng)驗(yàn)積累起來的。至少在公司內(nèi)部而言,Jupiter 已經(jīng)成為最適合斗魚的微服務(wù)架構(gòu)。
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)目排行榜榜首。
斗魚表示,目前,Jupiter 現(xiàn)在還處于用戶體驗(yàn)產(chǎn)品的發(fā)展階段,希望借助廣大研發(fā)人員的力量,不斷完善這套框架。但未來希望這能夠成為一套成熟的行業(yè)規(guī)范標(biāo)準(zhǔn)。