mqant 是一款基于 Golang 语言的简洁,高效,高性能的分布式游戏服务器框架,研发的初衷是要实现一款能支持高并发,高性能,高实时性的游戏服务器框架,也希望 mqant 未来能够做即时通讯和物联网方面的应用。
pymqant
pymqant是已经mqant相同的设计原理用python实现的,python版本设计的初衷并不是替代golang语言版本的mqant,而是希望mqant能充分利用python语言的优势(丰富的开源库),因此python是golang语言版本的mqant辅助版本
理论上pymqant也实现了mqant完全相同的功能,只是缺少一个网关模块,可以用pymqant实现游戏的web api模块,mqant实现对性能要求较高的游戏核心逻辑模块,pymqant模块与mqant模块之间可以无缝相互调用。
分模块机制
基于 golang 协程,开发过程全程做到无 callback 回调,代码可读性更高
RPC 支持本地和远程自动切换
远程 RPC 默认使用 rabbitmq,未来可以添加更多种类的通信协议
网关采用 MQTT 协议,无需再开发客户端底层库,直接套用已有的 MQTT 客户端代码库,可以支持IOS,Android,websocket,PC 等多平台通信
现如今只有多进程的架构才能达到支撑较多在线用户,降低服务器压力,降低单点故障所带来的影响等要求,因此一个真正高可扩展的游戏运行架构必须是多进程的。
然而在游戏的开发和运营也是按步骤阶段性进行的,尤其是现如今服务器硬件设备配置也越来越高的前提下,在游戏刚开始运营时单台服务器就足够支撑了,况且多进程部署所带来的运维成本也相对较高。
mqant 的设计思想是在能用单台服务器时能让充分挖掘服务器的性能,而在需要多进程时再通过简单的配置就可以实现分布式部署。
mqant 游戏服务器的运行架构
mqant 服务器是按模块来划分功能模块的,例如 用户管理,在线聊天,战斗平台等等都应该划分为独立的模块
模块之间通过 RPC 通讯,mqant 底层会根据实际情况选择 rpc 数据交互的通信渠道,在调用模块在同一个进程的情况下直接使用 golang chan 通讯,因此同进程内模块通信性能不受影响。
title: Go_mqant框架 categories: Go tags: [go, 游戏服务器, 框架] date: 2018-08-09 14:16:18 comments: false Go_mqant框架 GitHub : https://github.com/liangdas/mqant wiki: https://github.com/liangdas/mqant/wiki 社区 :
mqant mqant是一款基于Golang语言的简洁,高效,高性能的分布式游戏服务器框架,研发的初衷是要实现一款能支持高并发,高性能,高实时性,的游戏服务器框架,也希望mqant未来能够做即时通讯和物联网方面的应用 pymqant pymqant是已经mqant相同的设计原理用python实现的,python版本设计的初衷并不是替代golang语言版本的mqant,而是希望mqant能充分利用p
mqant mqant是一款基于Golang语言的简洁,高效,高性能的分布式游戏服务器框架,研发的初衷是要实现一款能支持高并发,高性能,高实时性,的游戏服务器框架,也希望mqant未来能够做即时通讯和物联网方面的应用 为什么要用golang 特性 高性能分布式 支持分布式跟踪系统接口传送门 基于golang协程,开发过程全程做到无callback回调,代码可读性更高 RPC支持本地和远程自动切换
armyant(行军蚁) mqant压力测试工具 简介 armyant是从http压力测试工具hey改装而成。 hey只支持http接口的压力测试而armant可以自定义压测协议。 目前默认实现了http,mqtt两种协议的压力测试工具 依赖模块 go get github.com/eclipse/paho.mqtt.golang 使用方法 armyant无命令行工具,目前需要通过源码编译执行 h
mqant mqant是一款基于Golang语言的简洁,高效,高性能的分布式游戏服务器框架,研发的初衷是要实现一款能支持高并发,高性能,高实时性,的游戏服务器框架,也希望mqant未来能够做即时通讯和物联网方面的应用 为什么要用golang 特性 高性能分布式 支持分布式跟踪系统接口传送门 基于golang协程,开发过程全程做到无callback回调,代码可读性更高 RPC支持本地和远程自动切换
mqant mqant是一款基于Golang语言的简洁,高效,高性能的分布式游戏服务器框架,研发的初衷是要实现一款能支持高并发,高性能,高实时性,的游戏服务器框架,也希望mqant未来能够做即时通讯和物联网方面的应用 https://github.com/liangdas/mqant pymqant pymqant是已经mqant相同的设计原理用python实现的,python版本设计的初衷并不是
mqant mqant是一款基于Golang语言的简洁,高效,高性能的分布式游戏服务器框架,研发的初衷是要实现一款能支持高并发,高性能,高实时性,的游戏服务器框架,也希望mqant未来能够做即时通讯和物联网方面的应用 https://github.com/liangdas/mqant pymqant pymqant是已经mqant相同的设计原理用python实现的,python版本设计的初衷并不是
问题内容: 我只是想知道哪种语言是开发支持大量(数千)用户的游戏服务器的理想选择?我涉足python,但意识到这不会给所有内核带来线程(这意味着8核心服务器= 1核心服务器)会带来太多麻烦。我也不太喜欢这种语言(那种“自我”的东西使我很生气)。 我知道C ++是性能方面的工作语言,但我讨厌它。我不想处理它的草率语法,我喜欢我的手被托管语言握住。这使我接触到C#和Java,但是我对其他语言持开放态度
1.自我介绍 2.算法题:8位数字首位相连成一个环,每位数字都是0或者1,输入一个8位数字,每次可以将一位翻转, 翻转时,这一位的前后各一位也会同时翻转,求最少的翻转次数,能够将输入的8位数转换为全0 3.实习相关项目介绍 4.项目相关问题 5.协程 6.reactor 剩下记不住了 #友塔游戏##C/C++##面经一面面经##游戏开发#
问题 自我介绍 问我在实习的时候做了什么 问我擅长的语言和技术 http的默认端口,https的默认端口 一个网卡上可以绑定多个ip吗 指向自身主机的ip地址 怎么不用第三个变量交换a和b的值,我答了异或,面试官问还有吗,我就说c++的swap和指令集的xchg make和cmake的区别 5L的水桶和3L的水桶怎么量出4L的水 交换机位于OSI模型的哪一层 问我玩过哪些游戏 总结 20多分钟就面
我正在尝试构建一个使用套接字和udp协议的python在线游戏。我创建了一个多处理和多线程服务器:https://pastebin.com/zucxwpc9。 我会解释里面的代码是做什么的。所以首先,它等待两个请求,并将它们放入lobby列表中。如果发出了两个请求,服务器将向客户端发送一个新端口,并创建一个具有两个线程的新进程。两个线程都在使用新端口,一个接收数据,另一个发送数据。我正在使用队列,
nebula3 是一个游戏引擎和开发框架,可移植的特性支持多平台,包括 iPhone。 http://code.google.com/p/nebula3-engine/
🕒 岗位/面试时间 64min 1.聊项目 2.怎么处理粘包问题 3.netty线程模型 4.synchronized与reenterlock 5.cas与锁的区别 6.项目并发线程数 7.公平锁与非公平锁,项目中那种锁用的多,实际场景那种锁用的多 8.IO密集型与CPU密集型,你的项目是哪种类型,为什么 9.场景题:多个用户申请加入公会,多个审核员同时审核请求,只有一个名额,如何设计实现并发?
本项目是win32下大型客户端游戏的游戏辅助开发框架,由于它集成并包含了游戏辅助开发的各方面功能,称本项目为win32辅助开发的组件也可。 内含具体项目有fifa online3、疾风之刃、怪物猎人online、流放之路等,也有辅助帐号验证服务器,帐号查寻与管理工具,特征码识别,资源文件系统等。 本人现已转型,特发布此项目,旨在分享一份只供参考的多年工作经验与心血,若本项目中有些您认为闪亮的设计、
我试图建立一个通用服务器总是在连接的客户端。 该体系结构由4个主要组件组成 有状态应用服务器 无状态网关服务器 客户排队 系统和经纪人 工艺流程 客户端连接到网关 我正在使用JavaNetty作为网关。appserver也是用Java编写的。 我很想说这个设计像Mongrel2,但我不能完全确定。我想说,这更符合城市飞艇氦边缘服务器的设计(http://urbanairship.com/blog/