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

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

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

發(fā)布時(shí)間:2023-11-27 11:56:03 瀏覽量:103次

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

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

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

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

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

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

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

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

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

特點(diǎn)

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



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

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

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

每一個(gè)節(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)容請(qǐng)查看kudos wiki

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

熱門(mén)課程推薦

熱門(mén)資訊

請(qǐng)綁定手機(jī)號(hào)

x

同學(xué)您好!

您已成功報(bào)名0元試學(xué)活動(dòng),老師會(huì)在第一時(shí)間與您取得聯(lián)系,請(qǐng)保持電話(huà)暢通!
確定