文章目录
同步概念
同步分为:实时同步和离线同步
实时同步,一般是通过监控源数据变更操作,通过在目标端实时重放操作,从而达到实时同步的目的
离线同步,相当于某个时候对源数据做一个快照。
一、Mysql 设置 主从数据库同步
MySQL自带功能
一般针对的是整个数据库
参考:
https://blog.csdn.net/TAB_YLS/article/details/80031491
https://blog.csdn.net/w6611415/article/details/51556771
主主同步
http://git.malu.me/MySQL%E7%BA%BF%E4%B8%8A%E4%B8%8E%E6%9C%AC%E5%9C%B0%E5%AE%9E%E6%97%B6%E5%90%8C%E6%AD%A5/
二、开源项目选择
2.1 Canal + Kafka
同步类型:实时同步
简介:Kafka是消息中间件的一种
开发商:Apache
开源:https://github.com/apache/kafka
优点:高吞吐量:即使是非常普通的硬件kafka也可以支持每秒数十万的消息。
缺点:配置复杂点,消息可能重复,低概率丢数据
参考:
https://www.orchome.com/kafka/index
2.2 Canal + Otter
同步类型:实时同步
简介:基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL
开发商:阿里
开源:
https://github.com/alibaba/canal
https://github.com/alibaba/otter
优点:canal + otter 非常适合mysql库之间的同步。有可视化界面
缺点:配置复杂点
参考:
https://cloud.tencent.com/developer/article/1188291
demo:
https://www.jianshu.com/p/d955d9d73241
2.3 DataX
同步类型:离线同步
简介:DataX在阿里巴巴集团内被广泛使用,承担了所有大数据的离线同步业务,并已持续稳定运行了6年之久。目前每天完成同步8w多道作业,每日传输数据量超过300TB
开发商:阿里
开源:https://github.com/alibaba/DataX
优点:配置简单,使用成本小
缺点:不能实时同步,不支持增量更新
参考:
增量更新:https://www.cnblogs.com/tianyafu/p/10018042.html
三、软件选择
3.1 Kettle
同步类型:实时同步
开源:http://kettle.pentaho.com/
优点:图形化界面
缺点:速度慢 3k-2w条/秒
3.2 TreeSoft
http://www.treesoft.cn/product.html
指定数据库同步,定时同步等任务