kafka绑定到ipv6端口,即使在config中指定了ipv4地址

时间:2015-09-12 00:13:41

标签: apache-kafka

我有点绑定(双关语)。

我有一台运行kafka&的ubuntu服务器动物园管理员。该服务器安装了ipv4和ipv6协议。

在server.properties文件中,我将host.name和advertised.host.name指定为我的公共ipv4地址。

当我启动zookeeper和kafka时,kafka仍然绑定到ipv6端口。

$ netstat -l -t | grep 9092 
tcp6       0      0 ferozed-linux3.mydomain:9092 [::]:*                  LISTEN

我在MapReduce作业中运行生产者的客户端计算机是IPv4计算机。由于服务器绑定到IPv6接口,客户端无法连接到它。

知道如何解决这个问题吗?

3 个答案:

答案 0 :(得分:7)

从Andrey的答案开始,您可以通过添加环境变量来解决它

export KAFKA_OPTS="-Djava.net.preferIPv4Stack=True"

答案 1 :(得分:4)

如果我理解正确,您需要以下内容:

System.setProperty ("java.net.preferIPv4Stack", "true");

代码中的

-Djava.net.preferIPv4Stack = True

在Web服务器启动脚本中工作。

你试过吗?

答案 2 :(得分:2)

添加这是kafka/bin/Kafka-run-class.sh

KAFKA_OPTS="-Djava.net.preferIPv4Stack=True"

并重启 Kafka 代理。