基于mysql binlog解析的数据通道

本文是基于阿里开源的mysql binlog解析方案canal,以及golang版本封装的一套数据更新通道。

先来张设计图
基于mysql binlog解析的数据通道_第1张图片
简单介绍下功能
  • canal本身实现了对mysql binlog的解析(只支持row模式),该golang版本本身是只支持单mysql实例,需要封装下支持多个数据源。
  • zookeeper实现了HA(flag : EPHEMERAL|SEQUENTIAL基本就能搞定)
  • kafka可以方便各个业务方订阅不同的数据源事件,而且是n:m的关系,其中n是多个数据库,m是多个业务方。比如可以把db+table作为一个topic,供一个或多个业务方去消费。
做成服务

服务化的设计,可以很好的支持公司各个部门对db数据变更的需求,比如业务cache更新、搜索、大数据等。

你可能感兴趣的:(基于mysql binlog解析的数据通道)