使用OK: // 基于固定canal server的地址,建立链接,其中一台server发生crash,可以支持failover CanalConnector connector = CanalConnectors.newClusterConnector( Arrays.asList( new InetSocketAddress("server1", 11111), new InetSocketAddress("server2", 11111)), destination, "canal", "E3619321C1A937C46A0D8BD1DAC39F93B27D4458");
使用no OK: // 基于zookeeper动态获取canal server的地址,建立链接,其中一台server发生crash,可以支持failover CanalConnector connector = CanalConnectors.newClusterConnector( "server1:2181", destination, "canal", "E3619321C1A937C46A0D8BD1DAC39F93B27D4458");
异常: initClusters(this.zkClient.getChildren(clusterPath));
2019-12-27 11:35:45.426 [main-EventThread] INFO org.I0Itec.zkclient.ZkClient - zookeeper state changed (SyncConnected) Exception in thread "main" org.I0Itec.zkclient.exception.ZkNoNodeException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /otter/canal/destinations/server1-canal-manager/cluster at org.I0Itec.zkclient.exception.ZkException.create(ZkException.java:47) at org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:1001) at org.I0Itec.zkclient.ZkClient.getChildren(ZkClient.java:677) at org.I0Itec.zkclient.ZkClient.getChildren(ZkClient.java:673)
原提问者GitHub用户xuebinwang
自问自答,调试好了,是因为集群主配置的canal.zkServers未配置 canal.zkServers =server1:2181
原回答者GitHub用户xuebinwang
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。