go-mysql-transfer MySQL Binlog 增量实时同步工具开源项目

我要开发同款
匿名用户2021年02月24日
53阅读
开发技术GO语言
所属分类Google Go、其他
授权协议Apache

作品详情

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支持下

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论