admin管理员组

文章数量:1635678

项目场景:

已通过canal client创建了一个连接,连接服务器的12004端口的mysql并监听所有库所有表的变化,由于新增业务需求,需要再监听服务器的12003端口的mysql中的一个库下的两种表的变化


问题描述:

更改现有配置文件中的canal相关的配置,canal的destination和subscribe配置字段分别更改为destinations和subscribes来配置canal server的多个destination,把多个destination和subscribe用";"拼接存到destinations和subscribes中,加载配置时用";"把destinations和subscribes分割成字符串列表,两个字符串列表个数要一致,然后创建多个canal client,每个client都去连接canal server,部署到服务器上后,总是会报错,canal server断开canal client的链接,无法正常监听数据库的变更

原因分析:

研究了canal go sdk源码后发现,NewSimpleCanalConnector创建出的所有链接共用一个链接句柄,代码如下:

type SimpleCanalConnector struct {
	Address           string
	Port              int
	U

本文标签: 多个CLIENTcanaldestinationServer