摘要:

很多网络游戏都是典型的分布式系统,系统的可用性、伸缩性以及中间的任务并行度都是困难的课题。因为需要支持从几千到几百万游戏玩家同时在线,同时还要处理各种复杂的游戏逻辑以提高玩家的用户体验,从而增加玩家的黏合度。这就要求系统的框架具有高可用、强伸缩性、可扩展性以及可开发性。由于游戏从推出时并无法预计游戏的玩家数量,所有的网络游戏都会面临伸缩性的问题。系统需要根据用户数量的增长而增加处理能力,在游戏后期玩家兴趣衰退而降低处理能力。虽然一般游戏都会在特定时间做维护,但是7*24依旧是对系统的要求,高可用性依旧是系统重要的质量属性。当前芯片的架构趋势从不断增加的时钟速度转变为多核,新芯片的设计目标是需要同时做多件事情,为了适应芯片的改变系统需要通过并发来实现总体性能的增长。分布式系统的一致性问题对于大多数开发者来说也是难题,这最好由架构来解决。本文的课题是设计一个分布式架构,编程模型是反应式的,也是一种新型的MMORPG的分布式系统架构,目标是对实际的开发者尽可能隐藏分布式计算,分布式系统中的一致性问题,同时还保证系统的高可用性以及伸缩性,使得最终开发者可以集中精力完成业务逻辑而非底层的技术细节,创新点如下:(1)优化了网络通信模块,改变了传统网络库中单IO线程的方式,实现了多核下的Reactor模型,即多IO线程配合线程池的模式。对于应用层缓存的进行了优化,减少系统调用以及利用了临时栈空间,这样能够提高系统的网络吞吐量以及降低延迟。(2)为了提高系统的可用性引入了2个开源组件ZooKeeper、Redis,ZooKeeper解决了分布式系统中的命名、分布式锁、负载均衡、协调等一致性问题,Redis作为内存数据库加载系统中的热点数据,来缓解传统磁盘数据库的压力,这样的改进增加了系统的吞吐以及降低延迟,由于Redis是以集群的方式部署在系统中,也保证了系统的可用性以及性能。(3)架构中提到的任务服务,是典型的master/slave结构,任务可以在不同节点移动,从而实现负载均衡,由于slave可以动态的添加,由master来监视slave节点并且实现简单的负载均衡策略,这样就保证了系统的伸缩性。(4)数据服务为整个系统提供数据服务,属于分布式数据架构,是逻辑集中的实体,在集群中多台机器上进行数据分区,通过对多台机器上不同数据分区的控制,就可以实现负载均衡以及伸缩性。在第五章节本文对方案中的关键组件进行了性能测试以及针对架构进行了伸缩性的测试。伸缩性测试包括了增加业务功能以及增加相同任务节点后负载均衡的验证以及系统可用性的验证。最后对于整体方案进行了总结和展望以及对之后一些可以改进的地方做了说明。

展开

mmorpg服务器物理,伸缩性MMORPG服务器架构的设计与实现相关推荐

  1. MMORPG网络游戏开发之任务系统的架构与设计

    前言 在网路游戏中做任务已经成为游戏很重要的一个核心功能和玩法,如何做好一个灵活可扩展的任务系统的架构与设计,今天来给大家分享一些我们的设计经验.接下来我把整个的任务系统分成以下6个模块: 对于单机游 ...

  2. 服务器物理路由器,游戏服务器识别路由器

    游戏服务器识别路由器 内容精选 换一换 Atlas 200 DK开发者板支持通过USB端口或者网线与Ubuntu服务器进行连接,连接示例图如图1所示.Atlas 200 DK连接Ubuntu服务器有以 ...

  3. 网游服务器通信架构的设计

    转自:http://www.cppblog.com/jack-wang/archive/2009/01/02/70963.aspx 随着网游从业者的规模和需求不断扩大,越来越多的朋友进入了网游开发这个 ...

  4. 无缝世界网游服务器架构的设计思路

    过去一年中,花了很多时间在考虑服务器架构设计方面的问题.看了大量文章.也研究了不少开源项目,眼界倒是开阔了不少,不过回过头来看,对网游架构设计方面的帮助却是不多.老外还是玩儿console game的 ...

  5. 海外服务器的3种体系架构:SMP、NUMA、MPP

    境外服务器的3种体系架构:SMP.NUMA.MPP! 从系统的体系架构来看,目前的商用服务器大体上可以分为3类:SMP(对称多处理器)结构.NUMA(非一致存储访问)结构和MPP(海量并行处理)结构. ...

  6. 云服务器物理主机的区别,云服务器与物理机的区别

    1 物理服务是什么? 物理服务器是指独立服务器,也就是指物理上的单独服务器,物理服务器的构成包括处理器.硬盘.内存.系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力.稳 ...

  7. 什么是裸金属服务器?裸金属服务器架构原理详解

    裸金属服务器再度流行,目前阿里云.华为云.腾讯云等各大厂商都推出了自己的裸金属服务器,那么到底什么是裸金属服务器?裸金属服务器的架构原理是什么?云吞铺子分享: 什么是裸金属服务器? 裸金属服务器(Ba ...

  8. 服务器虚拟化安装杀毒软件,服务器虚拟化部署_服务器虚拟化部署架构

    服务器虚拟化技术的优点1.提升资源利用率:通过服务器虚拟化的整合,提高了CPU.内存.存储.网络等设备的利用率,同时保证原有服务的可用性,使其安全性及性.. 在你自己电脑上都可以弄得,吧iis打开,建 ...

  9. 香港物理服务器和香港云服务器有什么区别?

    香港物理服务器和香港云服务器免备案的特点和超高性价比,成为了很多站长建设网站的优先选择.但很多用户在选择香港物理服务器和香港云服务器时,都不知道两者之间有什么区别,对此,今日小杜就跟大家分享一下,香港 ...

  10. 小米资深工程师瞿晋萍(男):米聊服务器的技术选型和架构设计

    小米资深工程师瞿晋萍:米聊服务器的技术选型和架构设计 - 资讯频道 - CSDN.NET 小米资深工程师瞿晋萍:米聊服务器的技术选型和架构设计 2012-07-07 11:04 | 238次阅读 | ...

最新文章

  1. 『数据中心』供配电与空调设计基础知识
  2. Coursera自动驾驶课程第17讲:An Autonomous Vehicle State Estimator
  3. vue中选项和url根据彼此的改变实现高亮显示
  4. 悲观锁和乐观锁_浅谈数据库悲观锁和乐观锁
  5. 52 - LeetCode-13 -罗马数字转整数_罗马数字转数字
  6. feign扫描_微服务通信之feign的注册、发现过程
  7. 东航期货模拟交易brockerid(期货公司的客户号)
  8. Juniper SSG 550M HA配置文档
  9. 使用Dism++安装系统(新手勿尝试)
  10. 数字图像处理应用---车牌号识别
  11. matlab编写正弦波mif,使用MATLAB一键制作mif文件
  12. RouterOS 自动拨号直至获得指定IP段IP的脚本
  13. python解析word文档首、尾页
  14. czy的后宫——矩阵快速幂优化DP
  15. 局域网频繁掉线解决办法
  16. System.out. 输出到指定文件中
  17. Ubuntu磁盘管理
  18. Unity后处理效果之边角压暗
  19. 邮箱数据协议迁移方案
  20. linux面板切换快捷键,Fedora 25 Gnome常用快捷键、快捷操作

热门文章

  1. 【转载】MiniGUI输入法词库更新
  2. 网关 路由器 防火墙
  3. 猫和计算机连接网络,宽带猫和路由器怎样连接 宽带猫和路由器连接方法【教程】...
  4. Python反爬机制-验证码
  5. 购车指南首次买车必看系列之(二): 产权篇
  6. “为什么要选择Startups?”--GitCafe邀您回顾第一期企业联合招聘
  7. python 包络线_Matlab 如何绘制复杂曲线的包络线
  8. 计算机R3处理器,2018年3月最新版处理器天梯图 秒懂三月台式电脑处理器性能排行...
  9. [转载】中移物联网NB模组注册指令生成小工具-M5310/M5310_A
  10. Http协议的身份认证