mqant是一个基于Golang语言的游戏框架,它具有高性能、高可伸缩、分布式多进程等特点,并且使用很简单。与以往多进程的游戏框架不同,mqant也支持单进程部署,并且也具备很高的性能。mqant在底层对分布式进行了抽象,在开发的时候无须考虑分布式,让开发者可以更多地去关注游戏的具体逻辑,大大提高开发效率。mqant的灵活性使得mqant也可以作为通用的分布式实时应用开发框架,用于一些高实时应用的开发。 mqant与客户端通信选择了mqtt协议,这使得mqant支持所有主流平台的客户端,使得客户端的开发变得很友好。github
mqant游戏服务器的运行架构
mqant服务器是按模块来划分功能模块的,例如 用户管理,在线聊天,战斗平台等等都应该划分为独立的模块
模块之间通过RPC通讯,mqant底层会根据实际情况选择rpc数据交互的通信渠道,在调用模块在同一个进程的情况下直接使用golang chan通讯,因此同进程内模块通信性能不受影响。
每一个模块可以注册多个处理器(handler), 处理器分为 backend/frontend 两种模式
frontend 提供给客户端调用的
backend 提供个后端模块之间相互调用的
frontend的约定
frontend与backend实际上是相同的,唯一的不同是我们约定frontend命名已”HD_”开通,同时frontend函数的参数类型也固定
mqant游戏服务器架构示意图
模块间通信RPC
mqant中的RPC被封装为通用接口,底层可以根据需求在切换为如grpc,zerorpc等其他RPC通道,但目前mqant默认使用的远程通信通道是rabbitmq消息队列。