站务联系

经典游戏服务器端架构概述 (2)(2)

发布时间:2021-05-16   来源:网络整理    
字号:

经典游戏服务器端架构概述 (2)

[图-基于中心点的动态组织]

一般来说我们会使用一组目录服务器来充当“中心点”,代表整个集群。开源产品中最好的产品就是ZooKeeper了。当然还有一些开发者自己撰写那样的目录服务器。由于每位服务进程会自己上报负载跟状态,所以每位进程只须要配置自己提供的服务即可:服务昵称、服务插口。对于恳求方来说,一般都可以预先撰写目标服务插口的原语,用来编程,有些项目还使用RPC功能,使用IDL语言配置直接生成某些插口泛型。当还要恳求的时侯,执行“名字查找”-“路由选择”-“发起恳求”就可以完成整个过程。由于有“查找”-“路由”的过程,所以假如目标服务故障、或者新增了服务提供者,请求方能够手动荣获很多信息,从而达到手动动态扩容或容灾的疗效,这些都是无需专门去做配置的。

服务化与云

尽管动态组织的构架有这么多特点,但是开发者还是还要自己布署跟维护中心节点。对于一些常用的服务,如网路代理服务、数据储存服务,用户还是要自己去安装,以及想办法接入至这套机制中去。这对于开发、测试还是有一定的维保工作压力的。于是一些开发团队就把这类工作集中上去,预先布署一套大的集群中心系统,所有开发者都直接使用,而不是自己去安装布署,这就成为了服务化,或者云服务。

经典游戏服务器端架构概述 (2)

[图-分布式接入层]

使用P2P

网络状态同步形成的广播恳求中,绝大多数都是客户端之间的网路状态,因此我们在可以使用P2P的客户端之间,直接推行P2P的UDP数据连结,会比通过服务器转发增加特别多的负载。在一些如赛车、音乐、武打类别的知名游戏中,都有使用P2P技术。而接入进程天然的就是一个P2P撮合服务器。

有些游戏为了逐步减少推迟,还对所有的玩家状态,只同步键入动作,以及死亡、技能等重要状态,让怪物跟通常状态通过估算荣获,这样就更能节约玩家的码率,提高及时性。加上一些动作预测技术,在客户端上能表现的十分流畅。

图说天下

×
二维码生成