写点什么

容灾数据一致性保障探讨

作者:agnostic
  • 2022 年 9 月 04 日
    上海
  • 本文字数:532 字

    阅读完需:约 2 分钟

在容灾架构中,最重要的就是机房间数据一致性的保证。要达到 RPO=0 的限制,数据就必须保证强一致性。但是,根据 CAP 理论,要保证数据的一致性,就必然会牺牲数据的可用性或者分区容忍性。但是对于互联网架构,可用性和分区容忍性也是很重要的技术指标。


这里,提出一个关于容灾数据一致性的观点,就是分情况差异化处理。


对于配置类数据,如业务配置、内部合约、数据分片路由等。由于变化的频率比较高,同时数据一致性要求高,不一致造成的影响大。这种情况下,就采用强一致性保证,忽略分区容忍性,对于部分机房不可用或者脑裂的情况,不允许这部分数据变更。


对于状态类数据,如用户信息、商户信息、资产信息等。变更频率比较低,同时数据以读取操作为主。这部分数据的变更,就考虑共识的数据一致性,追求数据一致性和分区容忍性,但是可以放弃一部分可用性的指标,比如在多机房故障共识无法达成的情况下,变更失败。


对于交易类数据,由于我们多采用用户或者商户维度的路由原则。这部分数据变化的频率比较高,多机房之间的同步基本也只是灾备情况下才需要生效。所以这部分数据可以采用最终一致性同步的方式。采用快照+Event 的同步逻辑。对于快照,采用最大能力同步;对于 Event,采用共识的逻辑。在数据恢复的时候,快照+Event 回放达到最终一致性。


发布于: 刚刚阅读数: 7
用户头像

agnostic

关注

还未添加个人签名 2019.02.14 加入

还未添加个人简介

评论

发布
暂无评论
容灾数据一致性保障探讨_容灾_agnostic_InfoQ写作社区