版本1.1.2。 看代码, CanalMQStarter 在服务拉起时启动相应的线程来处理当前服务上已经运行的 instance 获取的 event, 如果服务拉起时, 所有的instance 都是备份 , 就不会有相应的canalMQWork 启动。
当主服务挂掉, 备份服务的instance 开启, 但没启动对应的 canalMQWork 把拉取 binlog 投送到消息服务。
原提问者GitHub用户ihanyong
......
final ClientIdentity clientIdentity = new ClientIdentity(destination.getCanalDestination(), (short) 1001, ""); while (running && destinationRunning.get()) { try { if (!canalServer.getCanalInstances().containsKey(clientIdentity.getDestination())) { try { Thread.sleep(3000); } catch (InterruptedException e) { // ignore } continue; } ......
原回答者GitHub用户rewerma
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。