开发者社区> 问答> 正文

异地机房,mysql内网IP的java.net.NoRouteToHostException: No

机器连接情况: 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

展开
收起
古拉古拉 2023-06-16 21:06:52 28 0
1 条回答
写回答
取消 提交回答
  • 新版本默认会关闭数据表类型转化, 或者你可以手工关闭一下

    原回答者GitHub用户agapple

    2023-06-16 21:44:04
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载

相关镜像