中新網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現在還處于用戶體驗產品的發展階段。我們希望借助廣大研發人員的力量,不斷完善這套框架。未來我們希望這能夠成為一套成熟的行業規范標準。”斗魚方面表示。
來源:中國新聞網






