databuse是一个由GO开发,高可用的,Mysql数据快照和数据变更存储,分发的项目。
其分为服务端和客户端SDK两部分,服务端存储DUMP快照及BINLOG实时变更,客户端SDK通过简单的API调用,即可从服务端获取到全量快照及其后的变更数据。
整个Mysql数据抽取和分发,获取的细节,被封装起来,使用者只要关注数据的使用即可。
该项目致力于简化DBA或者应用开发人员对来自Mysql数据的实时获取和变型使用。
- MYSQL-DATABUS暂未支持GTID,近期将更新支持
- 提供数据初始化快照获取能力(比图1更完善,重点功能)
- 服务端支持容灾部署
- 支持DUMP快照的定期更新,保证客户端追加变更的效率
- 初始化结束后,客户端运行过程中若关闭,重启后自动续传实时变更
- 客户端SDK自行解决数据重发问题,使用者不受干扰
- 支持多客户端同时访问,随机访问服务端,期间不会对Mysql源产生任何压力
- 支持客户端对服务端节点的自动分析,无需关注服务端的实际部署
- 支持TEXT字段及字符串中保存的JSON值和特殊字符的正确传输,支持BLOB字段
- 支持实时查阅服务端信息,动态修改服务端部分配置项
- 提供大量配置项,避免对部署环境的限制
- 提供使用简单的客户端SDK实时获取数据,数据消费者按自身需要灵活使用获取的数据
- 服务端支持一个库指定表,指定多个库,指定全部库三种模式
- 服务端支持过滤表
- 提供SDK客户端指定起始BINLOG POS位置(绕过初始化)
- 支持DDL的传输(包含ALTER,CREATE,DROP,TRUNCATE),解决了ALTER RENAME问题
- DDL操作传输前自动增加�SCHEMA,Clinet SDK端获取后,若目标端为MYSQL,不必切换DB即可使用
- DML操作在Client SDK获取后,自动增加SCHEMA,,若目标端为MYSQL,不必切换DB即可使用
- 为便于使用,将CLIENT SDK代码独立出来,放于一下GITHUB中,移步获取 The Client SDK for mysql-databus
- MYSQL-DATABUS 架构介绍
- MYSQL-DATABUS 服务端高可用实现
- MYSQL-DATABUS 传输数据封装介绍
- MYSQL-DATABUS SDK设计介绍
- MYSQL-CLIENT GETEVNET()返回的数据结构
- 感谢go-mysql的作者siddontang,Mysql-Databus依赖的datapipe最初实现基于go-mysql工具包
- 感谢编写过程中提供各类思路的延允,盟主,邵青等好基友
swordstick
linkedin链接
技术站 www.dbathread.com