当多个下游都需要消费同一个MySQL实例的binlog信息时,如何配置来实现这个需求? 每个下游可能消费进度、filter存在差异
原提问者GitHub用户zhoujinsong
一个 canalinstance 实例可以支持多个客户端消费同一个 mysql 实例的 binlog 信息,可以通过在 instance.properties 文件中配置多个客户端的 canal 配置来实现。具体配置如下:
在 instance.properties 文件中添加多个 canal 配置,每个配置都需要指定不同的 canal 端口,例如: canal.instance.network.port=11111 canal.instance.network.port=11112 canal.instance.network.port=11113 在不同的客户端中,指定不同的 canal 端口来连接 canalinstance 实例,例如: canal.instance.master.address=127.0.0.1:11111 canal.instance.master.address=127.0.0.1:11112 canal.instance.master.address=127.0.0.1:11113 对于每个客户端,可以单独配置消费进度和过滤规则,例如: canal.instance.filter.regex=.\.. canal.instance.filter.black.regex=mysql\.slave_.* canal.instance.filter.black.regex=mysql\.slave_.* canal.instance.filter.black.regex=mysql\.slave_.* canal.instance.filter.black.regex=mysql\.slave_.* canal.instance.filter.regex=.\.. canal.instance.filter.black.regex=mysql\.slave_.* canal.instance.filter.black.regex=mysql\.slave_.* canal.instance.filter.black.regex=mysql\.slave_.* canal.instance.filter.black.regex=mysql\.slave_.* canal.instance.filter.regex=.\.. canal.instance.filter.black.regex=mysql\.slave_.* canal.instance.filter.black.regex=mysql\.slave_.* canal.instance.filter.black.regex=mysql\.slave_.* canal.instance.filter.black.regex=mysql\.slave_.* 需要注意的是,对于每个客户端,需要使用不同的 canal 端口来连接 canalinstance 实例,并且需要单独配置消费进度和过滤规则。
可以参考:https://github.com/alibaba/canal/wiki/ClientAdapter
原回答者GitHub用户Kaiux
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。