目录
介绍
JD_databus是为满足多数据中心项目的mysql在数据中心间复制的需求所产生的。最开始JD_databus是在LinkedIn的databus的基础上开发的,本次设计考虑到可维护性、代码的简洁、需求的快速迭代,决定重新开发。设计和开发过程中参考了Databus、Canal/Otter的一些好的思路,对于Binlog解析部分则直接使用了她的dbsync模块。
特性
- 基于MySQL的ROW Binlog进行双向复制,可以实现MySQL的双主、多主模式;
- 自动负载均衡、故障切换;
- 基于Binlog日志位置或时间点回滚/重做;
- 可指定跳过阻塞复制的SQL;
- 可批量合并SQL、优先并行入库,失败自动降级为串行入库;
- 复制延迟监控报警;
- 内置丰富的可视化节点状态、metrics;
- 和UMP、JONE集成;
架构总述
Pipeline
复制管道由SDBI(源数据库实例)、RS(Relay Server,缩写下同)、RC(Replicator Client,缩写下同)、TDBI(目标数据库实例)这四个组件组成。RS通过mysql的复制协议拉取SDBI的binlog增量变更事件,RC通过自定义RPC协议从RS拉取事件,然后使用JDBC协议写入TDBI。
Group
若干同类pipeline的集合。