《王者荣耀游戏服务器架构演进(完整版)》读后感
原文地址:https://mp.weixin.qq.com/s/l1pnVc_E-Nz6Z27iC0G6GA
1.游戏服务器特征
游戏服务器端,是一个会长期运行的程序,并且它还要服务于多个不定时,不定点的网络请求。所以这类软件的特点是要非常关注稳定性和性能。这类程序如果需要多个协作来提高承载能力,则还要关注部署和扩容的便利性;同时,还需要考虑如何实现某种程度容灾需求。由于多进程协同工作,也带来了开发的复杂度,这也是需要关注的问题。
功能约束,是架构设计决定性因素。基于游戏领域的功能特征,对服务器端系统来说,有以下几个特殊的需求:
对于游戏数据和玩家数据的存储
对玩家数据进行数据广播和同步
把一部分游戏逻辑在服务器上运算,做好验证,防止外挂。
针对以上的需求特征,在服务器端,我们往往会关注对电脑内存和CPU的使用,以求在特定业务代码下,能尽量满足承载量和响应延迟的需求。最基本的做法就是“空间换时间”,用各种缓存的方式来以求得CPU和内存空间上的平衡。
在CPU和内存之上,是另外一个约束因素:网卡。网络带宽直接限制了服务器的处理能力,所以游戏服务器架构也必定要考虑这个因素。
2.游戏服务器架构要素
对于游戏服务端架构,最重要的三个部分就是,如何使用CPU、内存、网卡的设计:
内存架构:主要决定服务器如何使用内存,以最大化利用服务器端内存来提高承载量,降低服务延迟。
逻辑架构:设计如何使用进程、线程、协程这些对于CPU调度的方案。选择同步、异步等不同的编程模型,以提高服务器的稳定性和承载量。可以分区分服,也可以采用世界服的方式,将相同功能模块划分到不同的服务器来处理。
通信模式:决定使用何种方式通讯。基于游戏类型不同采用不同的通信模式,比如http,tcp,udp等。
2.服务器演化进程
(1)卡牌等休闲游戏弱交互游戏
服务器基于游戏类型不同,所采用的架构也有所不同,我们先讲一下简单的模型,采用http通信模式架构的服务器:
这种服务器架构和我们常用的web服务器架构差不多,也是采用nginx负载集群支持服务器的水平扩展,memcache做缓存。
唯一不同的地点不同的在于通信层需要对协议再加工和加密,一般每个公司都有自己的一套基于http的协议层框架,很少采用开源框架。
(2)长链接游戏服务器
长链接游戏和弱联网游戏不同的地方在于,长连接中,玩家是有状态的,服务器可以时时和client交互,数据的传送,不像弱联网一般每次都需要重新创建一个连接,消息传送的频率以及速度上都快于弱联网游戏。
转载于:https://www.cnblogs.com/qilin20/p/10749812.html
《王者荣耀游戏服务器架构演进(完整版)》读后感相关推荐
- GC13:XO独占游戏《神鬼寓言传奇》公布
作者: 来源: www.bts668.com 微软日前公布了<神鬼寓言传奇>(Fable Legends),该游戏是此系列作品的新作,将作为Xbox One游戏出现. 这款由狮子头工作室开 ...
- Facebook 重金挖不到,ASP.NET 之父,微软大神“红衣教主”传奇
作者 | 伍杏玲 出品 | CSDN (ID:CSDNnews) 2018 年底,微软"王者归来",时隔 16 年市值重返全球第一.人们纷纷用"力挽狂澜"&qu ...
- 乔布斯去世衍生多种周边产品(支持乔布斯请顶)
各种乔布斯肖像 乔布斯公仔 乔布斯立体纸人 不管你是不是狂热的苹果粉丝,是不是拥有n多的苹果产品,苹果帮主乔布斯都应该值得我们纪念. "为什么说乔布斯改变了世界?没有 iPhone,就不会有 ...
- 一战封神!“中国飞人”苏炳添跑出9秒83到底有多牛?
公众号后台回复"图书",了解更多号主新书内容作者:CDA数据分析师来源:CDA数据分析师 [导读] 在刚刚结束的东京奥运会百米飞人大战上,中国选手苏炳添在半决赛跑出9秒83,刷新了 ...
- 乔布斯导演的最后一幕
连作者也说,他仅仅是这本书的写作者,真正的作者是乔布斯."中信出版社总编辑潘岳近日分享了<史蒂夫·乔布斯传>幕后的故事.这本传记预定期已达100万册,预估最终销量将达到500万册 ...
- 30本pdf完整版的经典Linux学习和开发教程和资料下载 android arm java 资料大全
史上最牛的Linux内核学习方法论 点击下载 我的arm_linux移植笔记 点击下载 S3C2440完全开发流程 点击下载 Linux系统命令及其使用详解完整版 点击下载 Linux ...
- 30本pdf完整版的经典Linux学习和开发教程和资料下载 android arm java 资料大全...
史上最牛的Linux内核学习方法论 点击下载 我的arm_linux移植笔记 点击下载 S3C2440完全开发流程 点击下载 Linux系统命令及其使用详解完整版 点击下载 Linux主要shell命 ...
- 养成励志的习惯,一生励志——文指星终极励志
语言的突破全集 卡耐基 --励志经典 点击下载 人性的优点--卡耐基名著--励志经典 点击下载 人生格言精华总集 点击下载 人生定律与原则--励志经典 点击下载 厚黑学 ...
- 养成励志的习惯,一生励志
语言的突破全集 卡耐基 --励志经典 点击下载 人性的优点--卡耐基名著--励志经典 点击下载 人生格言精华总集 点击下载 人生定律与原则--励志经典 点击下载 厚黑学 ...
- 【转】乔布斯经典语录
2011年8月25日消息,乔布斯辞去了苹果公司CEO的职务.10月6日,传来了他去世的消息.在此缅怀乔帮主的同时,与大家分享乔布斯在世时的经典语录.(来自于<乔布斯传>--神一样的传奇的附 ...
最新文章
- 序列变换(Lis变形)
- 【测绘程序设计】坐标正算神器V1.0(附C/C#/VB源程序)
- spring security:第一个程序解析
- 集合源码阅读:LinkedList
- 域名使用cname方式跳转不到新域名_七牛云图床和Markdown使用
- .NET网络编程学习(一)
- 关于NFSv4服务共享目录里的文件UID和GID显示为nobody的解决方法
- win2008服务器系统玩红警,如何让Win8顺利兼容红警2
- python白鹅类型_SCP-CN-161 翻译器
- 五个了解自己天赋优势的分析工具(二)盖洛普优势测评
- 前沿技术,目前为止功能最全最强大的PLC智能远程模块,物联网模块
- 钉钉如何调整组织架构_[钉钉组织架构设置]如何设置组织架构 组织架构设置的五个步骤...
- 2022年9月电子学会Python等级考试试卷(一级)答案解析
- [Xcode]自己常用的Code Snippets、Xcode插件、文件目录
- [Python 爬虫] 使用 Scrapy 爬取新浪微博用户信息(二) —— 编写一个基本的 Spider 爬取微博用户信息
- Z-score 与 Fisher-Z 的区别
- Cisco路由器配置OSPF
- SAP MM物料与客户主数据的税分类
- Octave 软件的安装
- Android引导页图片拉伸问题
热门文章
- 用MFC编程时在源文件里经常看到的AFX或afx是什么意思?
- 微信聊天记录迁移及故障修复
- python 经纬度计算相关
- python怎么取共轭_python print出共轭复数的方法详解
- 新手提问!求解答QAQADODB.Recordset 错误 #x27;800a0bb9#x27; 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
- Android系统之制作开机LOGO
- 当公路的规则与秩序,被昇腾AI时刻守护
- 基于matlab的微分例题,基于MATLAB的rlc电路模型仿真例题.doc
- 64位ubuntu使用gcc -m32报错
- centos 6 安装 net-speeder