1. Canal-Admin文章中,已经完成了Canal可视化管理的环境搭建。本篇就基于可视化工具,对Canal-Server的配置进行学习。<br />我们现在考虑一个问题。Canal监听到Mysqlbinlog日志后放哪里?如果我想要使用这些binlog数据,又是如何取呢?<br />问题:
  1. canal-server将binlog日志放在了哪里
  2. 如何从canal-server中将binlog日志数据取出来

    问题解答

  1. canal-server将binlog日志放在了哪里?

这个问题我也不清楚,目前看来canal-server接收到mysql的binlog日志后,应该是存放在内存中

  1. 如何从canal-server中将binlog日志数据取出来?

canal-server接收到mysql的binlog日志后,可以使用以下方式接收:

  • 队列:Kafka、RocketMQ、RabbitMQ
  • tcp:客户端TCP连接Canal-Server,监听Canal-Server,获取binlog日志

    Instance配置

    各种接收模式的配置,属于Canal的配置,而具体的监听哪个mysql的配置是一样的。都是通过配置instance来设置。具体Instance的配置如下:
    image.png

    TCP模式:客户端接收binlog

  1. canal配置

image.png

  1. 客户端准备

参考:https://github.com/alibaba/canal/wiki/ClientExample

直接拉取canal源码,运行example中的指定类即可

注意点:
image.png
image.png

  1. 效果(修改数据库)

image.png

队列接收:RocketMQ

  1. 启动RocketMQ
  2. 修改canal配置文件

image.png
image.png

  1. 效果(修改数据库)

image.png
image.png

具体创建的是啥topic或者由instance决定