25 | 容灾与备份:如何设计逃生通道保证业务连续性?
王磊
该思维导图由 AI 生成,仅供参考
你好,我是王磊,你也可以叫我 Ivan。
我们今天的关键词是“逃生通道”。在生活中,我们去任何一个公共场所,比如火车站、商场、写字楼,都能看安全出口或者紧急疏散通道的提示,这就是逃生通道。逃生通道的作用就是人们能够快速脱离危险的地方。而在系统领域,逃生通道是指让业务能够脱离已经不可用的原有系统,在一个安全的备用系统中继续运转。
可以说逃生通道就是系统高可用的一种特殊形式。它的特别之处在于,备用系统要提供差异化的、更高级别的可靠性。为什么备用系统能够提供更高级别的可靠性呢?这是主要由于它采用了异构方案。
对于分布式数据库来说,逃生通道存在的意义应该更容易理解。作为一种新兴的技术,分布式数据库还没有足够多的实践案例来证明自身的稳定性,即使是它本身的高可用架构也不足以打消用户的顾虑。这时候就需要设计一种异构的高可用方案,采用更加稳定、可靠的数据库作为备用系统。我们通常把这个备用数据库称为“逃生库”。
在分布式数据库的实践没有成为绝对主流前,逃生通道都是一个不容忽视的用户需求。它可以降低实施风险,打消用户的顾虑,减少新技术应用中遇到的各种阻力。
CDC
作为一个数据库的高可用方案,首先要解决的是数据恢复的完整性,也就是我们提过多次的 RPO。这就需要及时将数据复制到逃生库。通常异构数据库间的数据复制有三种可选方式:
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
分布式数据库的逃生通道是一种异构的高可用方案,由分布式数据库、单体数据库和分布式消息队列构成。逃生通道的设计需要解决日志格式适配和性能适配问题,特别是在处理分布式事务时需要保证数据一致性。文章介绍了CockroachDB引入的特殊时间戳标志“Resolved”,用于保证多分片事务的一致性。对于单个分片的变更消息流是否能够保证顺序一致性提出了思考,并欢迎读者在评论区留言讨论。整体来说,逃生通道作为分布式数据库的备用方案,在系统架构中并不常见,但对于分布式数据库来说却显得尤为重要。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《分布式数据库 30 讲》,新⼈⾸单¥59
《分布式数据库 30 讲》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(5)
- 最新
- 精选
- piboye单体数据库,容量问题怎么解决?
作者回复: 用一个更大的单体来做逃生库,通常也就是要被分布式数据库替换掉的那个单体库。
2020-10-073 - Jxin1.CDC其实也用来做其他类型数据存储的同步。比如es和redis。但也有我认为不好的用法,就是侵入业务,以CDC的方式做业务的事件发布。 课后题: 2.不能,因为存mq和mq消费都要保证顺序,这样才能做到有序。2020-11-021
- 胡须老爹第二个问题是性能匹配问题。用单体数据库来做逃生库,这里其实有一个悖论。 ------------------------------ 随后关注的是分布式数据库和逃生库的同步时候性能问题,实际上对于TPS,QPS都很高的集群,假定发生问题之后,一般单点的逃生库也是扛不住业务流量。 设计成分片的话,又存在资源比较大的限制和浪费的问题。另外,分布式数据库下不感知分片逻辑,回迁到静态分片的架构上面,业务代码可能也要做修改。2021-11-121
- amixyuekfk分区发布订阅保序,水位对齐可用于全局序2021-02-01
- 平风造雨单个分片的WAL本身有序,投递到kafka的时候,要保证消费完全有序,某些情况下需要额外的工作,比如表A和表B在一个事务中先更新表A再更新表B,但是表A和表B的数据变更日志不一定是被kafka的消费者按序消费的,或者是按照“原先事务”的方式进行消费的。望老师解答。2020-10-071
收起评论