1.2.2 分布式游戏服务器架构

分布式游戏服务器架构中,服务器不是一个单一进程,而是由N个进程组成集群对外提供服务。该架构具有良好的扩展性,可以实现负载均衡、动态伸缩,设计该架构需要对游戏服务器功能进行整体分析和功能模块划分。

分布式游戏服务架构可以对模块进行解耦,把一些功能比较独立或比较耗时的任务单独拆分出来,做成功能单一的服务,部署在不同的物理服务器上面,提升服务器的服务能力。分布式服务的概念首先是在Web服务中提出来的,这样可以用更多的服务器提供更多的服务。分布式游戏服务器架构如图1.2所示。

图1.2 分布式游戏服务器架构

分布式游戏服务器架构的优点有很多,具体如下。

●架构灵活,扩展性强,添加新的服务基本上不会影响其他的服务。

●便于负载均衡,如果某个服务压力过大,可以同时启动多个服务实例,分担服务压力。

●若某个功能出现bug,对其他模块影响小,可以修复之后快速重启进程。

●提高系统运行效率,不同的模块可以被并行访问。

也有一些缺点,具体如下。

●架构设计难度增加,分布式游戏服务器架构涉及多进程服务,对架构设计能力要求比较高。

●服务治理与维护困难,增加运维难度。

●涉及的技术方案多,增加学习成本。

●增加不同服务间的接口通信,即增加了业务功能开发量。

由此可见,分布式游戏服务器架构适用于一些要求在线人数比较多、并发量大、功能多且复杂的游戏,因此对整个团队的技术能力要求也比较高。随着业务量的增加,分布式游戏服务器架构已成为理想架构的目标,很多服务器架构都是从单体游戏服务器架构慢慢转化为分布式游戏服务器架构的。