第一种 实时同步

  • 针对实时性要求比较高的场景可以使用canal中间件实现,我们内部的大数据项目中也有用dataX的。
    canal 的主要用途是基于mysql数据库增量日志解析,并能提供新增量数据订阅和消费,从而实现数据同步。其主要是基于mysql 的binlog 技术实现的数据同步。
    主要工作原理如下:
    1、 canal模拟Mysql slave的交互协议,伪装为Mysql slave 发送dump 协议
    2、Mysql master接收到dump请求,推送binanry log 给slave
    3、 canal 解析binartlog 对象
  • 在写入mysql 直接同步 代码耦合度高

第二种对实时性要求不高

  • MQ
    向mysql写入数据时同时向mq写入 mq收到消息,同步到其他数据库。但需要处理MQ的最重要的问题,消息的可靠性。
  • Logstash elk的组成部分,logstash 负责收集、解析、转换数据。
  • 任务调度 开启定时任务扫描到进行同步