背景
在前边两篇讲到的数据一致解决方案中,提供一下解决一致性问题的概念以及二段提交(2PC)三段提交(3PC),以及2PC的延伸,但是系统不是万能的,总会出现一致性的问题,这个时候就不得不引入人工干扰机制,下面介绍一种通过dataBus来引入数据校验的功能。
声明
本文只是提供一中数据校验思路,并不会过多的阐述细节
好了,废话不多说直接上图:
总体思路
- 借助databus 监听到上游业务的binlog,发送MQ消息给到数据检验平台
- 数据检验平台可以直接针对于各个下游数据库进行访问校验数据预期的一致性
当然在微服务的架构前提下,一般是不允许一个平台可以访问多个业务的数据,这时候可以考虑数据校验平台来编写业务逻辑调用各个微服务接口进行数据校验。或者直接提供统一的接口,由各个业务方来实现。
简单的细节考虑:
- 扩展性
- 应用性
- 日志
- 延时 主要是延时校验
- 重试机制
- 相关人员通知