关于游戏服务器的架构演进历程
游戏服务器的架构演进
本文阅读预计需要10分钟,主要技术点来如下,感兴趣请继续:
游戏服务器特征
短连接游戏服务器架构
长链接游戏服务器架构
分区分服服务器架构
MMOARPG服务器架构
房间服务器架构
1游戏服务器特征
游戏服务器端,是一个会长期运行的程序,并且它还要服务于多个不定时,不定点的网络请求。所以这类软件的特点是要非常关注稳定性和性能。这类程序如果需要多个协作来提高承载能力,则还要关注部署和扩容的便利性;同时,还需要考虑如何实现某种程度容灾需求。由于多进程协同工作,也带来了开发的复杂度,这也是需要关注的问题。
功能约束,是架构设计决定性因素。基于游戏领域的功能特征,对服务器端系统来说,有以下几个特殊的需求:
对于游戏数据和玩家数据的存储
对玩家数据进行数据广播和同步
把一部分游戏逻辑在服务器上运算,做好验证,防止外挂。
针对以上的需求特征,在服务器端,我们往往会关注对电脑内存和CPU的使用,以求在特定业务代码下,能尽量满足承载量和响应延迟的需求。最基本的做法就是“空间换时间”,用各种缓存的方式来以求得CPU和内存空间上的平衡。
在CPU和内存之上,是另外一个约束因素:网卡。网络带宽直接限制了服务器的处理能力,所以游戏服务器架构也必定要考虑这个因素。
2游戏服务器架构要素
对于游戏服务端架构,最重要的三个部分就是,如何使用CPU、内存、网卡的设计:
内存架构:主要决定服务器如何使用内存,以最大化利用服务器端内存来提高承载量,降低服务延迟。
逻辑架构:设计如何使用进程、线程、协程这些对于CPU调度的方案。选择同步、异步等不同的编程模型,以提高服务器的稳定性和承载量。可以分区分服,也可以采用世界服的方式,将相同功能模块划分到不同的服务器来处理。
通信模式:决定使用何种方式通讯。基于游戏类型不同采用不同的通信模式,比如http,tcp,udp等。
3服务器演化进程
卡牌等休闲游戏弱交互游戏
服务器基于游戏类型不同,所采用的架构也有所不同,我们先讲一下简单的模型,采用http通信模式架构的服务器:
这种服务器架构和我们常用的web服务器架构差不多,也是采用nginx负载集群支持服务器的水平扩展,memcache做缓存。
唯一不同的地点不同的在于通信层需要对协议再加工和加密,一般每个公司都有自己的一套基于http的协议层框架,很少采用开源框架。
非常好我支持^.^
(0) 0%
不好我反对
(0) 0%
下载地址
关于游戏服务器的架构演进历程下载
相关电子资料下载
- 研华推出EPC-B3000系列嵌入式工控机,搭载先进X86架构CPU,助力边缘人工智能应用 91
- 典型汽车网络系统架构设计盘点 28
- 今日看点丨正面对决英特尔,传英伟达研发Arm架构PC芯片;郭明錤预估苹果明年 266
- 基于Corundum架构的100G RDMA网卡设计 32
- 一文详解ZGC关键技术 26
- 异构计算时代,RISC-V架构发展应该更大胆一些 498
- 什么是 “星闪”?星闪技术架构和特点分析 149
- AMD推出锐龙 Threadripper 7000系列处理器 170
- 如何使用pthread_barrier_xxx系列函数来实现多线程之间的同步? 29
- SpringBoot物理线程、虚拟线程、Webflux性能比较 37