自建 DataBus

关于自建 DataBus 的核心点思考

Posted by lijian on October 10, 2018

相关技术

OpenReplicator,开源的Java解析MySQL binlog LinkedIn DataBus canal 阿里开源组件 数据双活文章

自建 DataBus 功能

  • 对数据库中一条记录的增删改做出对应的异步操作,比如退款表插入成功之后自动执行退款
  • 数据多活
  • 企业级数据仓库的搭建参考链接

核心技术点

  • Canal 监听数据库 binlog 变更
  • MQ 解耦数据库变更
  • 下游根据需求独立实现

核心

  • Canal 监听到 binlog 变更, 会将变更事件类型以及变更前后的记录传递到MQ , Java 端消费MQ
  • 比如Java 端可以针对表创建队列,一个类实现一个队列(表)的处理器,针对不同的事件类型(增删改)执行不同的逻辑处理

拓展核心点

  • MQ 消息不丢失
  • 消费消息的幂等性处理
  • 有时候我们可能会手动修改数据库,但是不希望触发 DataBus 对应的异步逻辑,可以在表中增加是否触发 DataBus 标志位
  • 消息组件高可用
  • 消息不堆积
  • 数据一致性保证机制