Golang中国

mqant是一个基于Golang语言的游戏框架,它具有高性能、高可伸缩、分布式多进程等特点,并且使用很简单。与以往多进程的游戏框架不同,mqant也支持单进程部署,并且也具备很高的性能。mqant在底层对分布式进行了抽象,在开发的时候无须考虑分布式,让开发者可以更多地去关注游戏的具体逻辑,大大提高开发效率。mqant的灵活性使得mqant也可以作为通用的分布式实时应用开发框架,用于一些高实时应用的开发。 mqant与客户端通信选择了mqtt协议,这使得mqant支持所有主流平台的客户端,使得客户端的开发变得很友好。github

mqant游戏服务器的运行架构

alt mqant游戏服务器的运行架构
mqant服务器是按模块来划分功能模块的,例如 用户管理,在线聊天,战斗平台等等都应该划分为独立的模块

模块之间通过RPC通讯,mqant底层会根据实际情况选择rpc数据交互的通信渠道,在调用模块在同一个进程的情况下直接使用golang chan通讯,因此同进程内模块通信性能不受影响。

每一个模块可以注册多个处理器(handler), 处理器分为 backend/frontend 两种模式

frontend 提供给客户端调用的

backend 提供个后端模块之间相互调用的

frontend的约定

frontend与backend实际上是相同的,唯一的不同是我们约定frontend命名已”HD_”开通,同时frontend函数的参数类型也固定

mqant游戏服务器架构示意图

alt mqant游戏服务器的运行架构

模块间通信RPC

mqant中的RPC被封装为通用接口,底层可以根据需求在切换为如grpc,zerorpc等其他RPC通道,但目前mqant默认使用的远程通信通道是rabbitmq消息队列。

5 回复
wwbwayne
#1 wwbwayne • 2017-02-28 17:36

楼主,多出些教程来讲讲你这框架的用法,架构

liangdas
#2 liangdas • 2017-03-01 17:51

好的没有问题,我会继续写文章

chenparty
#3 chenparty • 2017-03-01 22:09

仔细看了框架介绍和相关说明,感觉这款架构很符合我的需求和审美,很赞,准备用作我个人自娱自乐的游戏服务器框架。希望大牛继续完善,早日推出release版本。

liangdas
#4 liangdas • 2017-03-03 09:31

恩多谢支持哈,目前还在不断完善中,本周会增加一个简单的分布式部署管理和监控控制台。希望大家能够加入进来一起完善

denfece
#5 denfece • 2017-04-03 14:30

楼主方便的话留个QQ很多问题想咨询,表示小白一只用的有点吃力

需要 登录 后方可回复, 如果你还没有账号你可以 注册 一个帐号。