nigix转发kafka 连不上

偉QQ廣 发表于: 2019-09-06   最后更新时间: 2019-09-06 10:23:26   2,317 游览

nigix转发kafka 连不上

问题描述

我这边有三台服务器,A,B,C,其中A不能与C联通,只能通过B转发。

现在就是A启动了Kafka,C是spring boot开发的 消费者.但是C通过B的nigix 连不上Kafka,导致C启动报错

报错信息

2019-09-03 14:37:53 [org.springframework.kafka.KafkaListenerEndpointContainer#0-0-C-1] INFO  org.springframework.kafka.listener.KafkaMessageListenerContainer - partitions revoked: []
2019-09-03 14:37:53 [org.springframework.kafka.KafkaListenerEndpointContainer#0-0-C-1] INFO  org.apache.kafka.clients.consumer.internals.AbstractCoordinator - [Consumer clientId=consumer-1, groupId=KAFKA_GROUP_ID_ONE] (Re-)joining group
2019-09-03 14:38:14 [org.springframework.kafka.KafkaListenerEndpointContainer#0-1-C-1] WARN  org.apache.kafka.clients.NetworkClient - [Consumer clientId=consumer-2, groupId=KAFKA_GROUP_ID_ONE] Connection to node 2147483647 could not be established. Broker may not be available.
2019-09-03 14:38:14 [org.springframework.kafka.KafkaListenerEndpointContainer#0-5-C-1] WARN  org.apache.kafka.clients.NetworkClient - [Consumer clientId=consumer-6, groupId=KAFKA_GROUP_ID_ONE] Connection to node 2147483647 could not be established. Broker may not be available.

已经尝试过哪些方法仍然没解决,操作步骤等

尝试修改kafka的配置server.property文件

listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://your.host.name:9092

用IP,localhost、0.0.0.0、都不行。

发表于 2019-09-06

kafka客户端是通过连接到某个kafka集群 节点,察觉其他节点的,所以客户端获取到的就是原kafka真实IP,而不是你转换后的。

所以,你可以通过路由转发或用域名,客户端host配置好想转发的地址。

偉QQ廣 -> 半兽人 5年前

但是A和C是连不上的哦,试过改了host也不行

偉QQ廣 -> 半兽人 5年前

假设

外网Kafka服务器A机器
IP:192.168.0.58
内网代理服务器B机器
IP:192.168.1.82
内网消费者客户端C机器
IP:192.168.1.130
,其中C是不能访问A的。

1、外网A机器kafka中server.properties配置
listeners=PLAINTEXT://192.168.0.58:6379
advertised.listeners=PLAINTEXT://kf-kafka:6379
2、外网Kafka服务器A机器的hosts:
192.168.0.58 kf-kafka
3、内网消费者客户端C机器的hosts:
192.168.1.82 kf-kafka

半兽人 -> 偉QQ廣 5年前

是的,host是这么配,你把A机kafka配置文件改成

listeners=PLAINTEXT://kj-kafka:6379

advertised.listeners已经弃用了,可以删掉,在试试。

偉QQ廣 -> 半兽人 5年前

试过了,还是不行呢

半兽人 -> 偉QQ廣 5年前

报错的时候,会打印连接不上的地址。是你的域名吗。
你telnet 域名 + 6379 是OK的吗

偉QQ廣 -> 半兽人 5年前

telnet 端口是通的,我先把转发的端口和kafka端口保持一致,然后改host文件,按上面配置就好了。

半兽人 -> 偉QQ廣 5年前

好的,可以节帖了

偉QQ廣 -> 半兽人 5年前

感谢你的支持

逆转时光 -> 半兽人 5年前

为什么配置域名就可以了,能大致讲下原理吗?另外如果是用路由转发的话具体怎么做?

逆转时光 -> 半兽人 5年前
advertised.listeners=OUTSIDE://192.168.1.16:9093,INSIDE://:9092
listener.security.protocol.map=INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT

这种kafka在docker上的配置方式是不是也能起到一样的效果?

你的答案

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