机器连接情况: node_A: 位于A机房,启用公网IP node_B: 位于B机房,启用公网IP mysql_A: 位于A机房,采用内网IP mysql_B: 位于B机房,采用内网IP 正常情况下,两个机房的mysql使用内网IP是可以的,两个node启用公网IP通信即可。但如果 pipline 开启了 “启用数据表类型转化” (默认是开启的),则会报 java.net.NoRouteToHostException: No route to host 错误,原因是:
com.alibaba.otter.node.etl.select.selector.MessageParser 类的大概 442 行:
// 获取一下目标库的拆分字段,设置源表为主键 // 首先要求源和目标的库名表名是一致的 DbDialect targetDbDialect = dbDialectFactory.getDbDialect(pipeline.getId(), (DbMediaSource) targetDataMedia.getSource()); 如果启用“启用数据表类型转化”,则会执行上面的代码,导致去连接目标库,从而报 No route to host 错误。
原提问者GitHub用户bochs-q
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。