You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

无法为Snowflake Kafka Connector执行Curl命令并创建REST API,分布式连接时出现路由不可达错误

解决Snowflake Kafka Connector REST API连接错误:curl: (7) Failed to connect to ::1: No route to host

从你提供的进程列表来看,ConnectDistributed已经正常启动,这个错误的核心是curl默认尝试通过IPv6地址(::1)连接Kafka Connect,但你的Connect服务可能只监听了IPv4地址,或者系统IPv6配置存在异常。下面是具体的排查和修复步骤:

1. 先尝试强制curl使用IPv4连接

这是最快的验证方法,直接在curl命令中指定IPv4地址:

curl -4 http://localhost:8083/connectors

或者直接使用127.0.0.1替代localhost:

curl http://127.0.0.1:8083/connectors

如果这个命令能正常返回结果,说明问题确实出在IPv6的解析或监听配置上。

2. 检查并修正Kafka Connect的监听配置

打开你的Connect分布式配置文件(从你的启动路径~/kafka_2.13-2.8.0/bin来看,通常路径是../config/connect-distributed.properties),找到listeners配置项,确保它设置为监听所有IPv4地址:

listeners=http://0.0.0.0:8083

0.0.0.0表示监听服务器上所有可用的IPv4接口,这样无论是用localhost还是127.0.0.1都能正常访问。如果之前配置的是http://::1:8083,那服务只会监听IPv6地址,自然会导致IPv4的curl请求失败。

修改配置后,需要重启ConnectDistributed服务:

# 根据进程号停止服务
kill 1616
# 重新启动分布式Connect
./connect-distributed.sh ../config/connect-distributed.properties

3. 验证Connect服务的实际监听状态

ssnetstat命令检查8083端口的监听情况,确认服务是否在正确的地址上监听:

# 查看8083端口的监听详情
ss -tulpn | grep 8083

如果输出显示127.0.0.1:80830.0.0.0:8083,说明IPv4监听正常;如果只有::1:8083,则证明服务只监听了IPv6,需要调整配置。

4. 调整系统IPv6配置(可选)

如果你的服务器不需要使用IPv6,可以临时禁用它来测试:

# 临时禁用IPv6(需要root权限)
sysctl -w net.ipv6.conf.all.disable_ipv6=1
sysctl -w net.ipv6.conf.default.disable_ipv6=1

执行后再尝试curl命令,应该会自动使用IPv4连接。如果需要永久禁用IPv6,可以将上述配置添加到/etc/sysctl.conf文件中,然后执行sysctl -p生效。


内容的提问来源于stack exchange,提问作者Austin Jackson

火山引擎 最新活动