IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    阿里巴巴Canal+SpringBoot监听Mysql, 数据同步

    John Doe发表于 2023-08-23 02:17:42
    love 0

    最近有一个项目需求, 甲方数据库是原库, 数据需要实时更新且数据量特别大未分表, 所以就打算拿到甲方的数据自建数据库分表, 但是需要数据同步,
    所以就选用了阿里巴巴的方案Canal; 工作原理:解析MySQL的binlog日志,提供增量数据, 主要用途是基于 MySQL 数据库增量日志解析,提供增量数据订阅和消费;

    示例环境为Linux单机Canal环境, Windows环境大同小异;

    Mysql配置

    查看mysql是否打开bin_log日志

    #查看mysql是否打开bin_log日志show variables like '%log_bin%';

    如果未开启, 修改mysql的my.cnf配置, Windows修改my.ini文件, 如下:

    [mysqld]log-bin=mysql-bin # 开启 binlogbinlog-format=ROW # 选择 ROW 模式server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复

    log_bin

    授权 canal 连接 MySQL 帐号具备做为 MySQL slave 的权限, 若是已有帐户可直接 grant(省略第三步)

    CREATE USER canal IDENTIFIED BY 'canal'; GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'canal'@'%';-- GRANT ALL PRIVILEGES ON *.* TO 'canal'@'%' ;FLUSH PRIVILEGES;

    服务端Canal安装

    Canal下载地址

    wget https://github.com/alibaba/canal/releases/download/canal-1.1.5/canal.deployer-1.1.5.tar.gztar -zxvf  canal.deployer-1.1.5.tar.gz

    进入到conf/example, 修改instance.properties文件

    回到上级bin目录, 执行startup.sh

    Springboot代码



沪ICP备19023445号-2号
友情链接