本周阅读了老师推荐阅读的公众号:架构师中的推文《游戏服务器的架构演进(完整版)》,感想以下:数据库
王者荣耀,年轻人必玩的两个游戏之一,游戏是类dota手游,游戏中的玩法以竞技对战为主,玩家之间进行1V一、3V三、5V5等多种方式的PVP对战,还能够参加游戏的冒险模式,进行PVE的闯关模式,在知足条件后能够参加游戏排位赛等。编程
其峰值大约平均天天在线人数将近300万人,而日活跃量高达750万人,这就意味这王者荣耀的服务器须要同时支持这么多人进行对战,进入游戏时,咱们发现,须要进行选择游戏大区,QQ区仍是微信区,IOS端,仍是安卓端,经过这样几回分类,已经使得服务器尽可能变得均衡,而进入游戏选择区服时,咱们发现,基本每一个区都有200个以上的具体服务器,这就使得服务器变得更加均衡。服务器
众所周知,游戏服务器端,是一个会长期运行的程序,而且它还要服务于多个不定时,不定点的网络请求。因此这类软件的特色是要很是关注稳定性和性能。这类程序若是须要多个协做来提升承载能力,则还要关注部署和扩容的便利性;同时,还须要考虑如何实现某种程度容灾需求。微信
那么服务器端架构设计须要注重些什么呢?文章中提到的,CPU、内存、网卡的设计,文章中提到:网络
内存架构:主要决定服务器如何使用内存,以最大化利用服务器端内存来提升承载量,下降服务延迟。架构
逻辑架构:设计如何使用进程、线程、协程这些对于CPU调度的方案。选择同步、异步等不一样的编程模型,以提升服务器的稳定性和承载量。能够分区分服,也能够采用世界服的方式,将相同功能模块划分到不一样的服务器来处理。异步
通讯模式:决定使用何种方式通信。基于游戏类型不一样采用不一样的通讯模式,好比http,tcp,udp等。tcp
首先,内存不是咱们考虑的主要问题,由于如今咱们的全部设备,都处于内存过剩状态,其次,通讯方式也不是咱们应该考虑的问题,4G网络,哦不,哪怕是3G网络,已经足以支持大部分网络游戏的正常运行,咱们须要考虑的仍是服务器端的逻辑架构。性能
之前咱们的游戏,第一代卡牌类休闲游戏,因为是弱交互游戏,那么对流量的需求不是很大。再到第二代网游服务器,电脑与网络的普及使得咱们愈来愈多的人接触到了互联网,而互联网游戏也所以获得了发展,此时的服务器架构主要采用而是分服模型。学习
而分服虽然能够解决服务器扩展的瓶颈,但单台服务器在之前单线程的方式来运行,没办法充分利用服务器资源,遇到跨服战便没法进行。
此时第三代服务器端架构应运而出,通常地,咱们能够将一个组内的服务器简单地分红两类:场景相关的(如:行走、战斗等)以及场景不相关的(如:公会聊天、不受区域限制的贸易等)。常常能够见到的一种方案是:gate服务器、场景服务器、非场景服务器、聊天管理器、AI服务器以及数据库代理服务器。
经过这种类型服务器架构,由于压力分散了,性能会有明显提高,负载也更大了,包括目前一些大型的 MMORPG游戏就是采用此架构。
以上即是本篇文章基本所介绍的游戏服务器端架构的发展历程,我以为本身收获很大,阅读了不少知识,基本对服务器端的架构发展有了了解,深深感受到本身的知识远远不够。会更加努力的学习。