windows宿主机消费Linux虚拟机kafka集群报异常WARN Connection to node 0 could not be established. Broker may not be available,求解决方案?

原创
早出晚归 发表于: 2021-08-17   最后更新时间: 2021-08-17 09:46:56   1,810 游览

windows宿主机消费Linux虚拟机kafka集群报异常WARN Connection to node 0 could not be established. Broker may not be available

配置如下:

1、Linux
kafka_2.11-0.11.0.2 集群三台机子分别配置:

server.properties配置

advertised.listeners=PLAINTEXT://10.0.2.5:9092
advertised.listeners=PLAINTEXT://10.0.2.6:9092
advertised.listeners=PLAINTEXT://10.0.2.7:9092

2、Linux hosts配置

10.0.2.5   hadoop01.richstone.com

3、Linux nginx配置

stream {
         upstream brokers {
               server 10.0.2.5:9092 weight=1;
               server 10.0.2.6:9092 weight=1;
               server 10.0.2.7:9092 weight=1;
         }

        server {
               listen 18001;
               proxy_pass brokers;
         }
}

4、虚拟机nat端口转发
10.0.2.5:18001 转发到宿主机127.0.0.1:18001

5、windows宿主机配置hosts配置
127.0.0.1 hadoop01.richstone.com

6、测试windows宿主机:
Telnet 127.0.0.1:18001 可以ping通

7、windows消费数据:

.\bin\windows\kafka-console-consumer.bat --topic first --bootstrap-server hadoop01.richstone.com:18001 --from-beginning

但是上面消费数据的时候报异常

WARN Connection to node 0 could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)

发表于 2021-08-17
添加评论

重点是,你宿主机消费者获取到的集群地址是

10.0.2.5:9092
10.0.2.6:9092
10.0.2.7:9092

你在往后推吧。

大兄弟,评论咱俩交流的重点你在看看,文章重点注意一下:https://www.orchome.com/1903

早出晚归 -> 半兽人 2年前

我看了很多遍了,我这个跟文章那个网络场景打不太一样。虚拟机里面的是nat软转发,没真实的路由,你说直接访问的那种方式是虚拟机用桥接模式,可以真实分配三个ip所以能直接访问,但是我这里配置的是nat网络,软转发。三台机子转发出去的ip(10.0.2.5,10.0.2.6,10.0.2.7),对应宿主机只有一个ip(127.0.0.1:端口),通过端口来访问对应的虚拟机。

半兽人 -> 早出晚归 6月前

Linux nginx配置的问题。
1、端口不能共用
2、每个转发对应一个broker。

楼主,我的情况和你类似,我的NAT只有一个,网络环境是这样的:

natip:9092-->kafka1.a.com:9092;
natip:9093-->kafka1.b.com:9092;
natip:9094-->kafka1.a.com:9092;

按照上面的配置其实也是不行的。不知道这种单IP是不是不可行还是说配置方法不对。

半兽人 -> pl 6月前

端口不能共用,每个转发对应一个端口。

pl -> 半兽人 6月前

natip:9092-->kafka1.a.com:9092;
natip:9093-->kafka1.b.com:9092;
natip:9094-->kafka1.c.com:9092;

运维把网络开成这样了。端口不能共用,能详细说明下么,谢谢。

半兽人 -> pl 6月前

比如kafka集群是3个:

1、客户端向kafka集群获取到这3个地址
2、建立双向通道,要分别和这3个节点建立长连接

kafka的数据是分布在这3个节点上,这3个地址必须能映射到真实的一一对应的。不能是转发到其中一台就可以的。

pl -> 半兽人 6月前

意思我这种情况是集群中kafka节点都映射到同一台NAT上了,尽管端口不一样,其实也是不行的么。也就是集群中每个kafka节点都必须映射不同nat上,是么。不太懂,不知理解的对不对。

半兽人 -> pl 6月前

你看看这篇文章之后,重新提交一个问题吧,把你具体的架构描述一下:kafka外网转发

你的答案

查看kafka相关的其他问题或提一个您自己的问题