架构之异地多活

软件架构设计通常遵循:高性能、高可用以及易扩展原则
多活

架构进化
  1. 单机:单点故障
  2. 备份:恢复时间长,影响业务;定期备份数据可能不完整
  3. 主从: 实时同步,数据完整性高;抗故障能力强,主从切换;读性能提升
    从部署细节上看,这些机器的的分布可能在相同的环境下,为应对机房级别的故障,其解决方案包括同城灾备方案,即为了避免A机房故障导致数据丢失,所以我们需要把数据在B机房也存一份。最简单的方案还是和前面提到的一样:备份。这样的方案称之为冷备,因为B机房只做备份,不提供实时服务,它是冷的,只会在A机房故障时才会启用,所以仍然需要在A、B之间做实时同步,为了减少业务恢复时间,需要提前在B机房部署好接入层、业务应用,这种方案叫做热备
同城双活

为保证A机房发生故障,B机房能承担对应的业务流量,我们需要让B机房也接入流量,实时提供服务。
一是保证B机房能有和A机房相同的业务处理性能;二是B机房可以承担A机房的流量压力。同时还要对B机房的业务应用层做改造,实现两个机房的「读」流量,可以读任意机房的存储,但「写」流量,只允许写 A 机房,因为主库在 A 机房。业务改造完成后,B机房可以接入流量,并对出现的问题及时修复。

两地三中心

两地是指2个城市,三中心是指3个机房,其中2个机房在同一个城市,并且同时提供服务,第3个机房部署在异地,只做数据灾备

伪异地双活

只是简单利用同城双活的架构模型,把机房部署在异地,存在很大的问题:网络延迟

真正的异地双活

为减少延迟,就需要考虑读写就近,则必须在存储层做改造,那么B机房就不能再是从库,而应该成为主库,只有两个机房都拥有「全量数据」,才能支持任意切换机房,持续提供服务。但问题是数据同步,对同一个数据极短时间内的数据修改如何解决,因为地域不同,时钟必须保持严格一致。
配置路由规则:

  • 按业务类型分片
  • 直接哈希分片
  • 按地理位置分片
    在最上层接入流量时,就不要让冲突的情况发生。具体来讲就是,要在最上层就把用户「区分」开,部分用户请求固定A机房,其它用户请求固定B机房,避免跨机房
异地多活

在异地双活的基础上,部署多个机房即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值