大型网站技术架构演进与性能优化(四) 全球化下的网站演进:全球部署方案

四、全球化下的网站演进:全球部署方案
全球化部署需要解决以下几个问题:
第一,业务核心单元的梳理。这些核心单元必须可以裁剪或添加。
第二,核心单元必须可以快速部署到国防的机房,最好能够一键部署,即首先要实现单元化部署。
第三,实现全球数据连通。
第四,处于研发效率的考虑,部署在全球的业务系统要有良好的定制型和扩展性。
1、国际化的背景
国际化一般有两种类型:一种是进口业务,像天猫国际和全球购;一种是出口业务,像速卖通和海外。
系统建设存在的两种思路:
a、将国内的系统完整的复制过去在本地重新搭建一套,实现本地化运营,两边的系统相互独立,数据不通。
b、只在本地建设个性化的系统,当地的系统和国内数据是打通的,整体还是一套系统。
2、面临的技术挑战
业务挑战
一是它必须采用就近访问原则,必须要保证用户体验;二是它不能跨区域进行大流量的并发读写,因为延时比较大,对系统的吞吐量会有致命的影响。
达到目标
单元化
一套代码、全球部署
服务本地、数据共享
区域容灾、全球多活
满足条件
要能共享和快速复制全球化基础设施
基础业务数据要能互通
业务系统要做抽象、提升可扩展性,能快速支撑业务发展。
3、全球部署的目标架构

4、何为单元化
所谓单元化就是按照某种维度对数据进行水平拆分,拆分后数据分布在不同地域并且对数据的更新是单写的。
5、单元化解决什么问题
解决物理资源限制的问题
解决高可用的问题
解决国际化、全球化业务问题。
6、单元化数据分片方案
中心-多单元模式
考虑到多单元建设的成本问题,不可能也没必要把所有系统都单元化,只需要把最小的核心系统单元化就能达到目的,即大部分业务系统都放在中心单元,再对中心单元的系统做冷备。
多机房 A-A模式
让同一业务系统在多机房同时提供服务。
要做到这一点,必须做这两件事:
第一,按照某个维度对数据进行划分:比如是司机还是乘客;
第二,解决数据层的异地复制和一致性问题:数据库双向复制和一致性校验。
数据按照什么维度划分
典型的电商数据一般分为买家数据、卖家数据。
遵守的规则:
就近访问、Hash取模、对用户建路由表
数据漫游问题
7、数据路由方案
主键ID做上标识
设置路由表
trace透传
路由模式:
中心模式,所有接口都回中心单元。
单元模式,按照单元化原则进行路由的接口,都需要被路由到正确的单元完成。
混合模式,表示路由原则可以是本单元优先,如果本单元不存在回中心单元调用。
8、接入层路由
基于多域名跳转
基于CDN代理
9、服务层路由
需要解决三个问题:哪些服务需要路由;单元内服务如何路由;单元之间的服务如何路由。
10、数据层路由
包括三个部分:对数据写入DB做最后一层的正确性校验;做DB之间的数据复制;不同机房之间Cache中的数据的一致性问题。
11、Sequence ID的冲突问题
以下几种解决思路:
基于一个全局统一的Sequence生成器。
提前预设分段,比如A库用奇数,B库有偶数。
设置起始值加步长的方式,并且基于数据库表做更新。
12、异地多活
当某个单元机器发生故障时,需要把这个单元的用户数据切换到中心或者其他单元,切换过程中,最重要的是保证数据的正确性。因此,必须按照一定的步骤来实现:
禁写要切换的用户请求。
送消息的路由规则。
推送默认的路由规则。
关闭之前设定的用户禁写规则
13、多语言问题
多语言文案的解决方案
多语言的存储
实时翻译引擎
14、多时区问题
解决方案:
使用UTC时间
使用本地时间
使用同一时区
15、全球数据同步与数据路由
数据复制
各国对数据的保护政策
16、通用版与定制版的选择

17、全球化部署中遇到的坑
脏数据、路由规则不一致、路由规则延迟生效、服务接口改造遗漏、应用层绕过路由规则直接写数据库、MySQL同步数据错误、数据同步故障、中心-单元网络故障
18、总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值