开源一个go的H5游戏服务端开发框架
ccwgpt 2024-10-03 18:17 28 浏览 0 评论
本人也是因为go的魅力从原来的node.js转go开发的,但并没有放弃node.js开发。node.js开发起来极为舒服,谁用谁知道。go的性能,并发,静态编译速度还是更令人着迷,在云计算,区块链等未来领域的发展也是极为看好。
之前游戏开发所使用的是网易的pomelo框架,它应该是游戏开发中node.js领域的主流框架。pomelo使用过程中遇到几个痛点:
- 性能提升:pomelo适合做IO密集型的场景应用,对于CPU密集型的处理影响性能。但游戏开发中经常会遇到需要大量计算的情况。虽然node.js后来版本也加入了多线程。
- 代码保护:对于做过外包的同学应该有很深体会,代码更本不敢部署在客户的服务器上。合作时是密,谈崩了是血淋淋教训。
- 所有进程依赖master的管理模式已经out:节点进程不能自己启动,需要通过master,而且master只有一个,跪了就全跪了。现在各行业服务开发已经进入微服务模式,没有一个节点是唯一的,都是可以替代的。先进的服务发现机制还带健康检查,自动踢除宕机或响应慢的节点。全面拥抱大数据,云时代吧。
在go上进行游戏快速开发极需要一件称手的兵器。我先后学习了cellnet,leaf,mqant都不是太满意(各种优劣日后做评析)。pomelo的架构和设计还是深入骨髓。有没有对于熟悉了pomelo转过来的同学门槛更低的呢?所以自己撸了起来。
微服务模式核心就是rpc,环顾主流rpc框架,阿里的dubbo,新浪的motan,google的gRPC,Apache的thrift,腾讯的Tars。要么太重,要么语言不适合。最后rpcx https://rpcx.io胜出,性能高,又是原生go写的。已经在马蜂窝等应用场景中有实践。自己也没必要再撸个rpc,更不可能超越前者了。
kudos框架: https://github.com/kudoochui/kudos
开发脚手架: https://github.com/kudoochui/kudosServer
特点
- 简单:容易上手,游戏开发需要基本组件和服务都已集成,直接调用。对于熟悉pomelo的特别友好。
- 组件化:功能分为一个个组件,按需要加载。
- 分布式:可以分成多个节点分布式部署,也可以打包一起作为一个进程部署。
- 微服务架构,支持服务发现:consul,etcd,zookeeper等主流注册中心。
- 基于rpcx的rpc:rpcx是一款高性能的rpc框架。其性能远远高于 Dubbo、Motan、Thrift等框架,是gRPC性能的两倍。支持服务治理。更多功能请参考:http://rpcx.io
- 跨语言:除go外,还可以访问其它语言实现的节点服务。得益于rpcx。
- 支持pomelo通信协议:该协议广泛用于各种游戏开发中,支持多端,多种语言版本。
- 易部署:各服务器独立,无依赖,可以单独启动。
kudos服务节点分为前端服务节点和后端服务节点。前端服务节点主要指的是gate。它负责管理连接,解码来自客户端的消息,通过proxy组件调用后端服务,拿到返回数据后,再编码发送回客户端。后端服务节点主要运行游戏的逻辑,数据的存储等。
所有节点需要向服务中心注册,一个节点不知道其它节点在哪,都是通过这个注册中心查询,获得对方的地址。支持如consul,zookeeper,etcd等。
每一个节点,如gate,logic等,内部是组件的组合。框架实现的有connector,remote,proxy,timers等。当然可以添加自定义组件。
kudos里提供一些global service。如idService,msgService,channelService等。sessionService主要是给后端服务节点使用的。
更多内容请查看kudos wiki
相关推荐
- Java开发中的区块链技术应用:让代码更“链”接未来
-
Java开发中的区块链技术应用:让代码更“链”接未来嘿,各位Java开发者们!今天咱们就来聊聊一个超级热门的话题——区块链技术在Java开发中的应用。可能有些人听到区块链就想到比特币,但其实区块链的应...
- gRPC Java 的开发StepByStep(javarpc原理)
-
一、环境准备1.安装依赖JDK:确保安装Java8或更高版本(推荐Java11+)。构建工具:选择Maven或Gradle(以下示例以Maven为主)。Protobuf编译器:...
- 谷歌发布开源LMEval框架:打破AI模型比较壁垒
-
IT之家5月27日消息,科技媒体TheDecoder昨日(5月26日)发布博文,报道称谷歌推出开源框架LMEval,为大语言模型和多模态模型提供标准化的评测工具。评测新型AI...
- 简约轻量的 VPN 客户端:LightVPN
-
Android自带的VPN需要设定锁屏密码才能启用,显然对于使用滑动或图案解锁的VPN用户来说,这是极为不友好的。为了改善这个情况,@喝雪碧的虾PeterCxy开发出了LightVPN这...
- 如何有效的去除安卓手机软件中的广告
-
【搞科技教程】安卓软件多同时广告也多,时不时的弹出来还一条条的切换,费流量的同时一不小心点到了还跳转了页面,这在玩游戏看视频的时候尤其令人烦躁。小安推荐大家一个轻量,高效的去除广告工具MinMinGu...
- 四款精品安卓软件推荐:让你的手机流畅的不像安卓机
-
目前国产软件的乱象,大部分软件不断后台自启,相互唤醒,这也是为什么安卓手机使用一段时间后就变卡的原因,今天小编为大家带来四款软件,能让你的手机流畅的像刚买时一样。绿色守护休眠进程和省电必备神器,最佳控...
- 生命不息,折腾不止:在 Android 上自制单手模式
-
手机屏幕做大,在视觉体验上带来的提升是非常明显的,但也因为屏幕变大,单手操作已不再那么现实。针对这种情况,各大厂商都相继推出了相应的解决方案,Android阵营比较有代表性的有魅族、锤子的下拉悬停和...
- Windows11安卓增强指南(win11 安卓 效率)
-
在Win11上,让人感受最深的莫过于可以运行安卓格式的APK软件,但是对于更加发烧的玩家来说,安卓系统没有ROOT,就无法实现一些骚操作,那么今天就来看看怎么给Win11的WSA加上ROOT吧。注意:...
- 2025年安卓虚拟机APP推荐TOP5(附下载教程)
-
身为25岁非二元性别的自媒体人,我视频剪辑、内容创作样样精通。多平台运营离不开安卓虚拟机APP。今天,就来聊聊2025年我最爱的5款虚拟机APP,附上教程,助你创作更高效!一、安卓虚拟机APP有什么用...
- 全民风险管理理论之COSO-ERM(全面风险管理的参与者)
-
萨班斯-奥克斯利法案内控体系COSO-ERM,2004八个要素COSO——ERM(2017版)框架五要素20个原则企业的经营目标不是价值最大化风险管理各要素间的关系各级关系全面风险管理与内...
- 透过照片学习摆姿技巧 你能拍出妹子的曲线么?
-
大多数人认为拍妹子都一个套路,但随着社会的发展,人们受到外来文化的影响越来越多,个性的照片也越来越被大家所接受。到底怎样的一幅人像照才是好照片,今天我们就从模特摆姿的方面来谈一谈人像照片中怎样能够完美...
- 手把手教你拍好局部风光!(如何拍好风光片)
-
外出旅行,游历名山大川、江河湖海,日升日落……总能看到绝佳的风景,有时置身于无与伦比的风景中反而容易眼花缭乱、迷失自己。我们不仅要欣赏远处雄浑壮阔的雪山,但是也不要忽略脚下和身边的局部优美风光。下面就...
- C# 从代码入门 Mysql 数据库事务(c#数据库操作实例)
-
目录生成数据库数据Mysql数据库事务基础数据库的并发一致性问题数据库事务的隔离级别BeginTransaction()和TransactionScope的区别BeginTransaction...
- 真香预警!尼康大炮500mm F4 FL E试用心得
-
NicolasStettler是一位来自瑞士的17岁野生动物摄影师,他最近购买了尼康最新一代长焦镜头AF-S尼克尔500mmf/4EFLEDVR,并将其与他的旧镜头进行了比较,以下是他的详细...
- 佳能RF 50mm f1.2L USM 被吹捧还是凭实力?新老对比能否一战?
-
镜头的定位佳能RF50mmf1.2LUSM是佳能EOSR全画幅无反光镜系统的标准定焦镜头RF50mmf1.2LUSM可以看作是之前12年推出的EF50mmf1.2LUSM的继承者。...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- MVC框架 (46)
- spring框架 (46)
- 框架图 (58)
- flask框架 (53)
- quartz框架 (51)
- abp框架 (47)
- jpa框架 (47)
- laravel框架 (46)
- springmvc框架 (49)
- 分布式事务框架 (65)
- scrapy框架 (56)
- shiro框架 (61)
- 定时任务框架 (56)
- java日志框架 (61)
- JAVA集合框架 (47)
- grpc框架 (55)
- ppt框架 (48)
- 内联框架 (52)
- winform框架 (46)
- gui框架 (44)
- cad怎么画框架 (58)
- ps怎么画框架 (47)
- ssm框架实现登录注册 (49)
- oracle字符串长度 (48)
- oracle提交事务 (47)