激情六月丁香婷婷|亚洲色图AV二区|丝袜AV日韩AV|久草视频在线分类|伊人九九精品视频|国产精品一级电影|久草视频在线99|在线看的av网址|伊人99精品无码|午夜无码视频在线

高校合作1:010-59833514 ?咨詢電話:400-810-1418 服務(wù)與監(jiān)督電話:400-810-1418轉(zhuǎn)接2

go 游戲開發(fā)(開源一個go的H5游戲服務(wù)端開發(fā)框架)

發(fā)布時間:2023-11-27 05:34:59 瀏覽量:115次

?開源一個go的H5游戲服務(wù)端開發(fā)框架

go 游戲開發(fā)(開源一個go的H5游戲服務(wù)端開發(fā)框架)

本人也是因?yàn)間o的魅力從原來的node.js轉(zhuǎn)go開發(fā)的,但并沒有放棄node.js開發(fā)。node.js開發(fā)起來極為舒服,誰用誰知道。go的性能,并發(fā),靜態(tài)編譯速度還是更令人著迷,在云計(jì)算,區(qū)塊鏈等未來領(lǐng)域的發(fā)展也是極為看好。

之前游戲開發(fā)所使用的是網(wǎng)易的pomelo框架,它應(yīng)該是游戲開發(fā)中node.js領(lǐng)域的主流框架。pomelo使用過程中遇到幾個痛點(diǎn):

  • 性能提升:pomelo適合做IO密集型的場景應(yīng)用,對于CPU密集型的處理影響性能。但游戲開發(fā)中經(jīng)常會遇到需要大量計(jì)算的情況。雖然node.js后來版本也加入了多線程。
  • 代碼保護(hù):對于做過外包的同學(xué)應(yīng)該有很深體會,代碼更本不敢部署在客戶的服務(wù)器上。合作時是密,談崩了是血淋淋教訓(xùn)。
  • 所有進(jìn)程依賴master的管理模式已經(jīng)out:節(jié)點(diǎn)進(jìn)程不能自己啟動,需要通過master,而且master只有一個,跪了就全跪了?,F(xiàn)在各行業(yè)服務(wù)開發(fā)已經(jīng)進(jìn)入微服務(wù)模式,沒有一個節(jié)點(diǎn)是唯一的,都是可以替代的。先進(jìn)的服務(wù)發(fā)現(xiàn)機(jī)制還帶健康檢查,自動踢除宕機(jī)或響應(yīng)慢的節(jié)點(diǎn)。全面擁抱大數(shù)據(jù),云時代吧。

在go上進(jìn)行游戲快速開發(fā)極需要一件稱手的兵器。我先后學(xué)習(xí)了cellnet,leaf,mqant都不是太滿意(各種優(yōu)劣日后做評析)。pomelo的架構(gòu)和設(shè)計(jì)還是深入骨髓。有沒有對于熟悉了pomelo轉(zhuǎn)過來的同學(xué)門檻更低的呢?所以自己擼了起來。

微服務(wù)模式核心就是rpc,環(huán)顧主流rpc框架,阿里的dubbo,新浪的motan,google的gRPC,Apache的thrift,騰訊的Tars。要么太重,要么語言不適合。最后rpcx https://rpcx.io勝出,性能高,又是原生go寫的。已經(jīng)在馬蜂窩等應(yīng)用場景中有實(shí)踐。自己也沒必要再擼個rpc,更不可能超越前者了。

kudos框架:
https://github.com/kudoochui/kudos

開發(fā)腳手架:
https://github.com/kudoochui/kudosServer

特點(diǎn)

  • 簡單:容易上手,游戲開發(fā)需要基本組件和服務(wù)都已集成,直接調(diào)用。對于熟悉pomelo的特別友好。
  • 組件化:功能分為一個個組件,按需要加載。
  • 分布式:可以分成多個節(jié)點(diǎn)分布式部署,也可以打包一起作為一個進(jìn)程部署。
  • 微服務(wù)架構(gòu),支持服務(wù)發(fā)現(xiàn):consul,etcd,zookeeper等主流注冊中心。
  • 基于rpcx的rpc:rpcx是一款高性能的rpc框架。其性能遠(yuǎn)遠(yuǎn)高于 Dubbo、Motan、Thrift等框架,是gRPC性能的兩倍。支持服務(wù)治理。更多功能請參考:http://rpcx.io
  • 跨語言:除go外,還可以訪問其它語言實(shí)現(xiàn)的節(jié)點(diǎn)服務(wù)。得益于rpcx。
  • 支持pomelo通信協(xié)議:該協(xié)議廣泛用于各種游戲開發(fā)中,支持多端,多種語言版本。
  • 易部署:各服務(wù)器獨(dú)立,無依賴,可以單獨(dú)啟動。



go 游戲開發(fā)(開源一個go的H5游戲服務(wù)端開發(fā)框架)

kudos服務(wù)節(jié)點(diǎn)分為前端服務(wù)節(jié)點(diǎn)和后端服務(wù)節(jié)點(diǎn)。前端服務(wù)節(jié)點(diǎn)主要指的是gate。它負(fù)責(zé)管理連接,解碼來自客戶端的消息,通過proxy組件調(diào)用后端服務(wù),拿到返回數(shù)據(jù)后,再編碼發(fā)送回客戶端。后端服務(wù)節(jié)點(diǎn)主要運(yùn)行游戲的邏輯,數(shù)據(jù)的存儲等。

所有節(jié)點(diǎn)需要向服務(wù)中心注冊,一個節(jié)點(diǎn)不知道其它節(jié)點(diǎn)在哪,都是通過這個注冊中心查詢,獲得對方的地址。支持如consul,zookeeper,etcd等。

每一個節(jié)點(diǎn),如gate,logic等,內(nèi)部是組件的組合??蚣軐?shí)現(xiàn)的有connector,remote,proxy,timers等。當(dāng)然可以添加自定義組件。

kudos里提供一些global service。如idService,msgService,channelService等。sessionService主要是給后端服務(wù)節(jié)點(diǎn)使用的。

更多內(nèi)容請查看kudos wiki

go 游戲開發(fā)(開源一個go的H5游戲服務(wù)端開發(fā)框架)

熱門課程推薦

熱門資訊

請綁定手機(jī)號

x

同學(xué)您好!

您已成功報名0元試學(xué)活動,老師會在第一時間與您取得聯(lián)系,請保持電話暢通!
確定