如何实现分布式条件下高可用及容灾?

参与7

3同行回答

匿名用户匿名用户
浏览537
wanglayewanglaye课题专家组信息技术经理某大型金融机构
分布式数据库的高可用依赖一致性协议+多副本机制。故障发生后主从副本的切换,这部分工作可以由集群根据一致性协议自动选举leader后实现,无需进行人工干预,完全自动进行;当然,也可以手工进行切换。整个过程业务无感知,切换过程会有瞬间影响.2.关于容灾,从概念上将分布式数据库的...显示全部
  1. 分布式数据库的高可用依赖一致性协议+多副本机制。
    故障发生后主从副本的切换,这部分工作可以由集群根据一致性协议自动选举leader后实现,无需进行人工干预,完全自动进行;当然,也可以手工进行切换。整个过程业务无感知,切换过程会有瞬间影响.

2.关于容灾,从概念上将分布式数据库的容灾机制有点类似集中式架构的“多活”+灾备结合的方式。在主集群之外,准备一套灾备集群。
先说多活,指的是leader。分布式数据库生产集群采用两地三中心五副本架构,同城生产机房2副本、同城灾备机房2副本、异地灾备机房1副本,根据一致性协议以及“大多数”原则,必须保证有3副本存活才能维持数据库正常服务。为了保证数据库写服务效率,异地机房的1副本仅作为从副本,因此无leader,所有的leader都分布在同城两个机房里。 如果异地机房出故障,那么集群剩下4副本,此时写操作请求发生后,只要有3个副本写成功即可,同时,同城两个机房有全部leader,因此无需重新选举leader; 如果同城任一机房故障,那么集群剩下3副本 ,此时写操作请求发生后,需要3个副本都写成功才认为成功, 但是由于有1个副本在异地,存在异地延时,影响写效率,因此这种情况要先人工将集群5副本降为3副本,然后由集群在同城另一个正常的机房自动选举出leader。
除了上述场景,在异地灾备机房可以单独准备一套灾备集群,与生产集群进行数据同步,从而实现传统意义上的“灾备”。

收起
银行 · 2022-06-02
浏览560
o0呼噜Zzo0呼噜Zz系统工程师机密
最核心的思想就是要充分利用分布式多副本数据一致性协议的原理,并结合各种意外情况的具体特点(个别硬件故障?机房级灾难?还是城市级灾难?),找到对应的解决之道。如果客户的基础设施条件有限,不能满足分布式多副本数据一致性协议的部署要求,那么可以考虑引入其它方式,比如集群间数...显示全部

最核心的思想就是要充分利用分布式多副本数据一致性协议的原理,并结合各种意外情况的具体特点(个别硬件故障?机房级灾难?还是城市级灾难?),找到对应的解决之道。如果客户的基础设施条件有限,不能满足分布式多副本数据一致性协议的部署要求,那么可以考虑引入其它方式,比如集群间数据复制。

下面的表格中,我们总结了几种方案方便读者参考:

收起
系统集成 · 2022-05-31
浏览560

提问者

wanggeng
系统运维工程师某银行
擅长领域: 服务器存储数据库

问题来自

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2022-05-19
  • 关注会员:4 人
  • 问题浏览:1102
  • 最近回答:2022-06-14
  • X社区推广