利用cloudcanal做CDC(change data capture)

本文探讨了在微服务架构中遇到的数据同步问题,包括跨表冗余数据、Redis与Elasticsearch的同步以及MQ消息传递。原来通过业务代码发送MQ消息的方式存在诸多问题,如额外工作量、易出错和代码耦合。因此,提出了通过监听数据库binlog,采用CloudCanal进行数据变化捕获和同步的优化方案。CloudCanal作为阿里Canal的升级版,提供更便捷的透明化和可视化运维。在测试中,成功实现了源表品牌信息修改后,目标表冗余信息的同步更新。
摘要由CSDN通过智能技术生成

场景:

在使用微服务架构的过程中遇到了一下几个问题:

1、为了避免关联查询影响查询速度而做的不同业务域表之间的数据冗余如何同步?

2、缓存中心redis,搜索中心elestic search中的数据如何与数据库保持同步?

3、上游系统数据变化需要发送Mq消息,下游系统监听做相应的业务逻辑处理。

这几个问题的本质都是数据同步,即一方的数据变化需要通知另一方。

原始解决方案:

我们原来的解决方案是如果需要通知下游就在业务代码里发送消息到消息队列,下游监听消息后再做处理:修改冗余字段、更新redis或Es、业务逻辑处理。

带来的问题:

1、需要写大量的额外代码来发送MQ消息,增加工作量

2、不同的操作修改同一个字段每一个都要发送消息,重构时容易遗漏或出错。

3、业务代码与数据同步代码耦合,影响代码质量,维护不方便。

优化:

不论做什么业务操作最终都是落地到数据库上,可以将对数据变化的捕捉下沉到数据库层面通过监听数据库binlog实现。之前实验过阿里的canal,但是这个产品比较原始,用起来不太方便,需要自己做很多代码封装,恰好出现了它的升级版cloudcanal。

具体产品介绍和安装网上已经有了比较详细的介绍可以参考下面的链接:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值