mysql binlog同步工具binlogportal

使用binlog的原因

近期需要重构一个老系统,需要从几个服务中实时同步订单的修改到重构表里。

这里就面临两个选择,

  1. 在每个服务的mysql操作前埋点,发送修改信息到队列或服务上。这种方案需要修改多个服务的代码并且测试对原系统的影响,有额外开发和测试成本。
  2. 同步mysql的binlog,根据表的insert和update更新新表。但是需要维护一个binlog同步的服务
    本次选择了binlog同步的方式。搭建的binlog服务也可以用在之后新系统的缓存更新和同步ES索引上,相对于埋点这种只有一次性作用的方式,性价比较高。

同步工具binlogportal

基于这些问题,我们需要一个具有以下特性的binlog同步工具:

  • 可以使用springboot加载运行,具有较好的扩展性

    • 说白了就是作为一个jar包,开放出接口可以自定义处理binlog信息的方式
  • 可以使用redis实现binlog position的保存和分布式部署

为了满足这些条件,通过对mysql-binlog-connector-java封装后,实现了自研的工具binlogportal

  • 提供了binlogportal-spring-boot-starter包,可使用spring boot快速部署
  • 使用redis保存binlog position信息,重启后可从上次

猜你喜欢

转载自blog.csdn.net/chj_1224365967/article/details/131233790