mqant

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 通讯,因此同进程内模块通信性能不受影响。

python游戏服务器框架_mqant首页、文档和下载 - Golang/python语言开发的分布式游戏服务器框架 - OSCHINA - 中文开源技术交流社区...相关推荐

  1. 文档上传下载 php开源,PHP文件的上传下载 - PHP开发学习门户的个人空间 - OSCHINA - 中文开源技术交流社区...

    (1).在标签中将enctype和method两个属性指明相应的值. Enctype="multipart/form-data"; Method="POST" ...

  2. python开源项目博客_Blog_mini首页、文档和下载 - Python Flask开源博客 - OSCHINA - 中文开源技术交流社区...

    使用Blog_mini,你完全不用担心博客的管理问题! Blog_mini是一个用Python Flask开发的,拥有简洁页面(支持响应式布局!)和强大后台管理功能的开源博客系统,使用Blog_min ...

  3. python简介pdf_PDFMiner首页、文档和下载 - Python PDF 解析器 - OSCHINA - 中文开源技术交流社区...

    PDFMiner 是一个 Python 的 PDF 解析器,可以从 PDF 文档中提取信息.与其他 PDF 相关的工具不同,它侧重的是获取和分析文本数据.PDFMiner 允许获取某一页中文本的准确位 ...

  4. python 第三方绘图库_D3py首页、文档和下载 - 基于 D3 的 Python 绘图库 - OSCHINA - 中文开源技术交流社区...

    D3py 是一个基于 D3 的 Python 绘图库,可以像 D3 那样画出可交互的漂亮图形. D3py 的目的是把来自命令行或者脚本的数据画到浏览器窗口,d3py 通过构建两个优秀的包来实现这一点. ...

  5. python pyh模块下载_PyH首页、文档和下载 - 生成HTML页面的Python模块 - OSCHINA - 中文开源技术交流社区...

    PyH 是一个用来生成HTML页面的Python模块,使用面向对象的方式,HTML的标签都会对应一个Python的对象,输出的HTML文档排版良好,易于阅读. 示例代码: from pyh impor ...

  6. python如何使用sdk_Python_sdk首页、文档和下载 - 优图人脸识别sdk - OSCHINA - 中文开源技术交流社区...

    Python_sdk是一款用于腾讯优图人脸识别服务的sdk文件,优图人脸识别(Face Recognition), 是由腾讯优图团队研发的,基于人的脸部特征信息进行身份识别的一种生物识别技术.它提供了 ...

  7. python开发自动化测试工具_Moler首页、文档和下载 - Python 编写真的自动化测试工具包 - OSCHINA - 中文开源技术交流社区...

    Moler 是为构建自动化测试提供"砖块"的 Python 库. 所有这些"砖头"都有明确的责任,有类似的API,遵循相同的构造模式(所以很容易创建新的测试). ...

  8. python汉化 草蟒_草蟒首页、文档和下载 - Python 汉化版 - OSCHINA - 中文开源技术交流社区...

    草蟒是基于 Python 的全中文编程语言. 示例 1: # 截至 n 的斐波那契数列 >>> 函 斐波那契数列(n): >>> a, b = 0, 1 >& ...

  9. xml和java用户管理系统_XMLBeans首页、文档和下载 - XML-Java绑定工具 - OSCHINA - 中文开源技术交流社区...

    XMLBeans是一个XML-Java绑定工具,利用它可以很方便地解析XML文档. Eclipse支持插件:xmlbeansplug(在线更新地址). 下面是一段使用 XMLBeans 的代码: Fi ...

最新文章

  1. RNA-seq需要多长的读长?
  2. Go语言介绍 安装 基础命令(一)
  3. Swift - 添加、修改、删除通讯录联系人
  4. tkinter笔记:通过点击button 控制标签的显示 (莫烦python笔记)
  5. 财务管理的革新带动财务软件的变革
  6. hybris backoffice和产品主数据相关的一些sample data
  7. [jQuery] jQuery和Zepto的区别?各自的使用场景?
  8. 微服务架构实战(一):微服务架构的优势与不足
  9. 那一年,创业 vs 阿里(下):阿里篇
  10. CST常用应用的求解器
  11. 面试官问你期望的工资是多少,怎么回答最好?
  12. 网页游戏外挂的设计与编写:QQ摩天大楼【三】(登陆准备-信息发送方式)
  13. 《Adobe After Effects CS6完全剖析》——第2章 时间标尺 营造整洁的工作流程之梦...
  14. 怎么在linux系统中输入日历,Linux命令行上如何使用日历详解
  15. 神舟Z8-SP7D1驱动安装
  16. 哪个软件可以识别手写字?推荐好用的办法
  17. Hbase报错解决方法ERROR: KeeperErrorCode = NoNode for /hbase/master
  18. IRQF_ONESHOT
  19. 关于异步的几点思考......
  20. 【MM小贴士】SAP采购订单创建参考采购申请的强控

热门文章

  1. R语言数据类型:Logical、Numeric、Integer、Complex、Character、Vectors、Lists、Matrices、Arrays、Factors、DataFrames
  2. 对Java基本数据类型的再思考
  3. nanopore测序技术专题(六):测序错误率太高无法使用?
  4. C语言重点——指针篇(一篇让你完全搞懂指针)
  5. 基于 PacBio 测序数据的纠错算法评测与剪切位点识别研究
  6. java8 流操作_java8中的流操作
  7. python launcher怎么使用_python的launcher用法知识点总结
  8. 重温目标检测--YOLO v1
  9. 不降低scipy版本解决AttributeError: module ‘scipy.misc‘ has no attribute ‘imresize‘问题
  10. linux下bash脚本常用的十个技巧:显示执行脚本花费的时间,在脚本退出时杀死后台运行的程序,在脚本退出时跳出循环,读取命令行参数来决定循环次数