吐槽
我发现一些老程序对于基础的问题没有常识。我们项目之前想做全球同服,游戏是弱联网的游戏,玩家本地推关卡之后服务器验算存数据库。玩法有单服和跨服,比如好友,公会等服务是跨服。
为了解决全球同服,拉了运维负责人和中台的游戏服务器相关负责人,在游戏网络延迟的问题上进行了讨论。
运维负责人讲的很好,首先可以在美国架设服务器,服务于全球,看看延迟能不能接受。网络延迟是这么产生的:首先光速不变,从北京到美国硅谷不可能一点延迟没有,超光速违背物理定律。一条游戏协议要经过从玩家客户端发出,要经过很多路由器交换机,要有很多跳才能到达游戏服务器。大概有200-300毫秒延迟。目前谷歌可以提供谷歌专线服务,玩家连谷歌的云服务器能让消息少走几跳路由,从而让网络延迟降低。能从200-300ms延迟降低至100ms。
中台的服务器负责人提出想法,在全球各个区域购买云服务器,只在上面部署网关。然后单服和跨服都在美国硅谷的机器上部署。
听他这么一说,我都惊呆了。人家都说了光速不变,那个加速专线也只是少走了几跳路由,如果就近部署,那你为啥不把网关和单服都就近部署,跨服放美国,这样玩家玩单服的玩法延迟不就都降低了,只是跨服会有一点延迟。感觉他只是了解游戏服务器框架的知识,但是关于运维方面不够了解。另一个中台客户端负责人肯定了我的想法。
过了几个月后,这个中台服务器负责人被优化了。他之前主要负责公司内skynet框架的支持,但是目前公司的技术栈大多数为Java,C#,新开的项目也没有选择skynet的,所以被优化也就不奇怪了。
再后来因为一些人事变动,全球同服不了了之了,改成了分区域发行。