云端架构:基于云平台的41种可复用的架构最佳实践
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

4.7.5 核心业务区及非核心业务区(一写多读)

沿着上一节内容继续演进,全球只有一个“写数据”的地域,我们称为“核心业务区”;其他拉取数据的地域作为“只读”业务的地域,我们称为“非核心业务区”。现在要演变的是非核心业务区,改为从核心业务区拉取该业务“所有关联数据”加载到本地,接入该地域的所有请求在当前地域内完成所有计算和数据读写,在非核心业务区部署有完整的业务操作逻辑和数据库,单地域内业务闭合,如图4-24所示。

img

图4-24 通过全球应用加速实现智能DNS解析和用户就近接入

全球用户会按照一定的逻辑分散到多个非核心业务区中,一般是按照用户所在的国家或地区选择就近的云平台地域,如将东南亚地区的用户分配到新加坡、将北美洲的用户分配到洛杉矶、将欧洲的用户分配到法兰克福、将其他地区的用户分配到核心业务区的上海地域,东南亚用户的所有业务逻辑均在新加坡地域内进行处理,然后定期将数据同步到核心业务区的上海地域,其他地域也是如此。将其他地域的数据同步到上海后,并不用担心数据不一致会造成混乱,因为这些数据是不同用户产生的,在切分流量时已经对用户按照所在国家和地区做了切分。同样,核心业务区和非核心业务区都接入全球动态加速和CDN,就近接入,加速网络访问。

这种部署方式适合能够对全球用户按照所属的国家或地区、用户ID等属性来切分到逻辑的“业务区”,在“业务区”中单独处理业务;不适合满足全球任意两个用户都在同一个“业务区”的情况。这种部署方式适合新零售、在线教育等行业场景,也适合能够分服的游戏场景,不适合严格意义上的游戏全球同服。