go-mysql-transfer 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
go-mysql-transfer 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
go-mysql-transfer 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
go-mysql-transfer 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
go-mysql-transfer 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 Apache
操作系统 跨平台
软件类型 开源软件
所属分类 其他
开源组织
地区 国产
投 递 者 wj596
适用人群 未知
收录时间 2021-02-24

软件简介

go-mysql-transfer是一款MySQL数据库实时增量同步工具。 能够监听MySQL二进制日志(Binlog)的变动,将变更内容形成指定格式的消息,实时发送到接收端。从而在数据库和接收端之间形成一个高性能、低延迟的增量数据同步更新管道。

特性:    

  1. 简单,不依赖其它组件,一键部署
  2. 集成多种接收端,如:Redis、MongoDB、Elasticsearch、RocketMQ、Kafka、RabbitMQ、HTTP API等,无需编写客户端,开箱即用
  3. 内置丰富的数据解析、消息生成规则、模板语法
  4. 支持Lua脚本扩展,可处理复杂逻辑
  5. 集成Prometheus客户端,支持监控告警
  6. 集成Web Admin监控页面
  7. 支持高可用集群部署
  8. 数据同步失败重试
  9. 支持全量数据初始化

与同类工具比较:

特色 Canal mysql_stream go-mysql-transfer
开发语言 Java Python Golang
高可用 支持 支持 支持
接收端 编码定制 Kafka等(MQ) Redis、MongoDB、Elasticsearch、RabbitMQ、Kafka、RocketMQ、HTTP API
后续支持更多
全量数据初始化 不支持 支持 支持
数据格式 编码定制 Json(固定格式) Json(规则配置)
模板语法
Lua脚本

 

 

 

 

 

 

 

 

实现原理:

1、go-mysql-transfer将自己伪装成MySQL的Slave,

2、向Master发送dump协议获取binlog,解析binlog并生成消息

3、将生成的消息实时、批量发送给接收端

如下图所示:

 

安装与部署:

您可以直接下载编译好的安装包:  点击下载

最新版本:v1.0.3 release

也可以自行编译:
1、依赖Golang 1.14 及以上版本
2、设置 ' GO111MODULE=on '
3、拉取源码 ' git clone https://gitee.com/wj596/go-mysql-transfer.git '
4、进入目录,执行 ' go build '编译

资源

github: https://github.com/wj596/go-mysql-transfer

gitee: https://gitee.com/wj596/go-mysql-transfer

产品使用手册

如果此工具对你有帮助,Star支持下

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (1)

加载中
wj596软件作者
03/30 11:49
回复
举报
更多评论
暂无内容
01/12 08:30

后起之秀 | MySQL Binlog增量同步工具go-mysql-transfer实现详解

点击上方蓝色字体,选择“设为星标” 回复”资源“获取更多资源 一、 概述 工作需要研究了下阿里开源的MySQL Binlog增量订阅消费组件canal,其功能强大、运行稳定,但是有些方面不是太符合需求,主要有如下三点: 需要自己编写客户端来消费canal解析到的数据 server-client模式,需要同时部署server和client两个组件,我们的项目中有6个业务数据库要实时同步到redis,意味着要多部署12个组件,硬件和运维成本都会增加。 从serve...

1
0
发表了博客
2019/02/16 16:18

Transfer Learning

本文中的source data 和target data分别是有大量的非当前任务数据集和少量的当前任务数据集。  2 examples:  Both Labeled 1. Model Fine Tuning  当target data的量很少的时候,称为one-shot learning。 Fine Tuning: 将在source data中训练好的model作为target data的初始model继续训练。 Overtraining: 当target data的数量实在太少,在source 的 model一直训练就会出现overfitting.两种方法解决: Conservative Train...

0
0
发表于程序人生专区
2020/05/22 05:06

Transfer Learning

Transfer learning中文翻译成迁移学习,我总觉得没有英文那么形象。 好,故事开始。 一个蹒跚学步牙牙学语的小宝宝,从来没见过兔子,你给她一张图片说这是兔子,再给她另外一张兔子的照片,问她是什么。多半她是会回答正确的。 机器学习可以吗? 一张图片?are you kidding me?当然不可以! 为什么?为什么人可以,机器不可以? 如果知道了人为什么可以,机器上也差不多可以了。听上去好像是一个哲学问题。 我经常拿这个问题问朋...

0
0
发表了博客
2019/09/02 20:38

Transfer learning

大佬总结: http://transferlearning.xyz/ 博客部分摘录: https://blog.csdn.net/qq_31511955/article/details/82220268 1.概念: domain(域)和task(任务), source(源)和target(目标), 然后给它们进行自由组合。 domain:包括两部分:1.feature space(特征空间);2.probability(概率)。 所以当我们说domain不同的时候,就得分两种情况。可能是feature space不同,也可能是feature space一样但probability不同。 ...

0
0
发表了博客
2013/10/29 15:56

Language transfer

As a IT engineer, We have to learn many programming language to adopt work and life. With different syntax and rule, We had to change our think way to think same thing.

0
0
发表了博客
2019/09/02 21:56

MySQL多线程同步-Transfer解决主从同步延时问题

MySQL多线程同步 系统结构 : 传统的主从结构是 [Master] à [Slave], Master和slave主从关系; 使用transfer以后,[Master] à [Transfer] .--> [Slave], Master和Transfer主从关系,Transfer和Slave是Client-Server关系。 服务器环境: 主库:192.168.15.216 (3306端口) 从库:192.168.15.217 (3306端口) Transfer: 192.168.15.217 (3307端口) MySQL版本:mysql-5.5.18-linux2.6-x86_64.tar.gz 存储引擎:Innodb Data...

0
0
发表了博客
2020/11/24 00:32

【并查集】File Transfer

【并查集】File Transfer 题目传送门 题目要求: We have a network of computers and a list of bi-directional connections. Each of these connections allows a file transfer from one computer to another. Is it possible to send a file from any computer on the network to any other? 输入格式: Each input file contains one test case. For each test case, the first line contains N (2≤N≤104 ), the total ...

0
0
发表于区块链专区
2020/10/26 15:12

Heat transfer ribbon

Ribbon heat transfer printing is a new printing process, which has been introduced from abroad for less than 10 years. For most of the screen transfer printing and film transfer printing .The printing adopts dot printing (resolution up to 300 dpi), and the patterns are pre printed on the film surface. The printing patterns are rich in layers, colorful, changeable, small color difference and rep...

0
0
发表了博客
2018/03/13 07:10

Transfer 穿梭框

基础用法 Transfer 的数据通过 data 属性传入。数据需要是一个对象数组,每个对象有以下属性:key 为数据的唯一性标识,label为显示文本,disabled 表示该项数据是否禁止转移。目标列表中的数据项会同步到绑定至 v-model 的变量,值为数据项的 key 所组成的数组。当然,如果希望在初始状态时目标列表不为空,可以像本例一样为 v-model 绑定的变量赋予一个初始值。 1 <template> 2 <el-transfer v-model="value1" :data="d...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
1 评论
8 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部