canal 同时监听两个数据库实例

我有两个数据库实例 test和test2

复制一个example 并修改为example2

canal 同时监听两个数据库实例_第1张图片

修改canal.properties文件

找到 destinations 修改为监听example和example2实例
canal 同时监听两个数据库实例_第2张图片

把canal.destinations = example 修改为 canal.destinations = example,example2

在example目录中修改实例配置文件 instance.properties

canal 同时监听两个数据库实例_第3张图片
添加 canal.instance.defaultDatabaseName = test
如果 canal.instance.defaultDatabaseName 不存在 ,直接加上去

在example2目录中修改实例配置文件 instance.properties

canal 同时监听两个数据库实例_第4张图片
canal.instance.defaultDatabaseName = test2
如果 canal.instance.defaultDatabaseName 不存在 ,直接加上去

配置yml文件

example的连接配置

canal:
  # instance 实例所在ip
  host: xxx.xxx.x.xxx
  # tcp通信端口
  port: 11111
  # 账号  canal-admin application.yml 设置的
  username:
  # 密码
  password:
  #实例名称
  instance: example

example2的连接配置

canal:
  # instance 实例所在ip
  host: 192.168.2.223
  # tcp通信端口
  port: 11111
  # 账号  canal-admin application.yml 设置的
  username:
  # 密码
  password:
  #实例名称
  instance: example2

获取canal连接


    @Value("${canal.host}")
    private String host;

    @Value("${canal.port}")
    private int port;

    @Value("${canal.username}")
    private String username;

    @Value("${canal.password}")
    private String password;

    @Value("${canal.instance}")
    private String instance;
    
    /**
     * 获取连接
     */
    public CanalConnector getConn() {
        CanalConnector canalConnector = CanalConnectors.newSingleConnector(new InetSocketAddress(host, port), instance, username, password);
        return canalConnectorl;
    }

你可能感兴趣的:(数据库)