单一世界的服务部署有很大的讲究。我曾经在论坛上提到过大分布小集群的概念,就是跟服务器部署有关系。我们知道,单一世界会遭遇很大的网络流量和用户数,使用集群只能解决计算能力,却解决不了网络流量。我们如果将所有的地图集中放在中国某地的一个集群中,那么该集群将承受巨大的带宽压力。和http不同的是,单一世界是持续性的网络流量。
我们以中国区为例,我在各个省放置一个集群,然后在北京、上海、广州各放置一个中央集群。每个省的用户直接连接到他们省的集群,那么对中央集群的压力将大大降低,而网络流量同样由省的集群分担。当大部分人由省转移到中央集群所在地图,这时候可以采取2个策略,策略一是连接依然留在省,但是,在中央集群发生任何变化,由中央集群转发给省集群,然后再留省集群转发给终端。策略二是将连接转接到中央集群,数据同时脱离了省集群。我支持的策略是第一种,下面再详细分析。
首先、我评估了下连接到局域网、省网、洲际网的ping速度,大家也可以自己策略量下。一般局域网的延时可以控制在几毫秒以内,ping国内的ip可以控制几十毫秒,ping美国的ip需要在几百毫秒。显然如果将连接转移到中央集群会导致网络延时剧增。
而直接连接到本地的ip,网络延时会少得多。
其次,我们可以在省集群和中央集群之间假设高速网络,集群之间可以采取更加简洁压缩的数据传输方式,而且网络延时会更低。打个比方,如果终端直接连接到中央集群,那么可能是50毫秒的网络延时,如果通过省集群连接到中间集群,那么可能是终端连接到省集群的10毫秒,加上省集群连接到中央集群的10毫秒,加起来20毫秒。为什么会这样呢?因为,中央和省之间网络通道我们是可控,可以投资为 他们增加更好的硬件设备。
最后,当所有的用户在中央集群发生战斗,那么中央集群的计算量完全可以由省集群进行分担。他们之间的通讯量可以利用集群的高性能计算能力来压缩和还原。我们减少中央集群的通讯量,其他通讯量也可以直接在省集群之间来完成。大分布小集群就是这样部署完成的。
当这种方式衍生到全球各个洲的时候,就完成全球单一世界架构的建设。
原文链接:https://www.f2er.com/javaschema/287803.html