在上周的 Cloud 干货中我们从谷歌的基础架构入手,分析了其在游戏场景中的几大独特优势:优质层级的网络服务、全球 VPC、负载均衡等(点此复习)
那我们今天的文章继续来聊聊如何借助 Google Cloud来打造灵活可扩缩的游戏解决方案,简单来说主要分为三个层面:游戏接入层、服务器、数据库的扩展方案。
下面我们逐一展开.....
游戏接入层的扩展
正式开始之前我们先来看一个短视频:
视频链接:https://mp.weixin.qq.com/s/NxdwY8rmUJ2JxMyaTY3Bcw
这里主要有四个数字需要关注
一、随着玩家的不断加入,请求新开服务器的数量
二、实际开起来的服务器的数量
三、正在运行的服务器的数量
四、同时在线的玩家数量
我们会发现,一和二是完全匹配的,且游戏服务器的数量跟随玩家数量呈正向变化。这就是我们经常会听到的 Google Cloud 的自动、按需扩展。
且注意,Google Cloud 的自动扩展是不需要预热的。
那么,什么是预热呢?
在实际情况下,游戏厂商不只会有一台主机,会同时有很多游戏服务器,在这些服务器按之前还会有一个类似于负载均衡 Load Balancer 的服务,负责接受玩家请求,并将其分配给某台游戏服务器。这里的负载均衡本身可能是一个虚拟机(也可能是一台物理设备),当数以万计的玩家涌入时,同样需要对其扩展,否则会成为服务的瓶颈。
负载均衡的扩展即预热,需要时间和人工进行干预。
那么 Google Cloud 如何做到无需预热、按需扩展?
事实上,Google 的 Load Balancer 并不依赖某一台物理设备,甚至不依赖于某一机器集群,也不是单一的一个服务,而是由一组服务组成的一个遍布全球的分布式系统。从2008年开始,Google Cloud Load Balancer的很多关键服务,就一直在支持Google Search / Map / Adwords等多个业务的全球扩展。