go-mysql-transfer是一款MySQL数据库实时增量同步工具。能够监听MySQL二进制日志(Binlog)的变动,将变更内容形成指定格式的消息,实时发送到接收端。从而在数据库和接收端之间形成一个高性能、低延迟的增量数据同步更新管道。
特性:
简单,不依赖其它组件,一键部署集成多种接收端,如:Redis、MongoDB、Elasticsearch、RocketMQ、Kafka、RabbitMQ、HTTPAPI等,无需编写客户端,开箱即用内置丰富的数据解析、消息生成规则、模板语法支持Lua脚本扩展,可处理复杂逻辑集成Prometheus客户端,支持监控告警集成WebAdmin监控页面支持高可用集群部署数据同步失败重试支持全量数据初始化与同类工具比较:
特色Canalmysql_streamgo-mysql-transfer开发语言JavaPythonGolang高可用支持支持支持接收端编码定制Kafka等(MQ)Redis、MongoDB、Elasticsearch、RabbitMQ、Kafka、RocketMQ、HTTPAPI后续支持更多全量数据初始化不支持支持支持数据格式编码定制Json(固定格式)Json(规则配置)模板语法Lua脚本
实现原理:
1、go-mysql-transfer将自己伪装成MySQL的Slave,
2、向Master发送dump协议获取binlog,解析binlog并生成消息
3、将生成的消息实时、批量发送给接收端
如下图所示:
安装与部署:
您可以直接下载编译好的安装包: 点击下载
最新版本:v1.0.3release
也可以自行编译:1、依赖Golang1.14及以上版本2、设置'GO111MODULE=on'3、拉取源码'gitclonehttps://gitee.com/wj596/go-mysql-transfer.git'4、进入目录,执行'gobuild'编译
资源github:https://github.com/wj596/go-mysql-transfer
gitee:https://gitee.com/wj596/go-mysql-transfer
产品使用手册
如果此工具对你有帮助,Star支持下
评论