很神奇的问题,我把kafka安装在服务器上之后,本地可以执行查询topic的命令。
但是通过外网链接kafka,查询topic就不行。(外网ping 端口 可以ping通)
服务器环境:机房服务器,独立ip。请求先到达防火墙,然后防火墙根据端口映射,匹配到对应的服务器上
配置如下
broker.id=0
listeners=PLAINTEXT://192.168.88.82:9092 和 listeners=PLAINTEXT://:9092 效果是一样的
log.dirs=/data/kafka/log
offsets.topic.replication.factor=1
transaction.state.log.replication.factor=1
transaction.state.log.min.isr=1
zookeeper.connect=127.0.0.1:2181
用以上配置之后,服务器本地可以访问kafka,同局域网下的另一台服务器也可以访问
但是加了advertised.listeners=PLAINTEXT://xxx:9092
这个配置之后,本地服务器也不能访问了。
在
server.properites
中加上以下配置,然后重启kafka:advertised.listeners=PLAINTEXT://外网地址:9092
配置来自:Kafka Broker配置
我配上之后,服务器上kafka都没办法使用了
配了之后 本地的kafka都不能使用了
重新编辑了一下
192.168.88.82:9092
内部这个地址应该是不影响的呀,你操作命令贴一下。你
telnet
一下外网,看看通不通,配置没问题,我个人觉得是你外网转发的问题。我把这个advertised.listeners 配上之后,执行
kafka-topic.sh --list --bootstrap-server 192.168.88.82:9092
就执行不成功了。
报什么错?
[root@192 ~]# /usr/tools/kafka_2.13-3.0.0/bin/kafka-topics.sh --list --bootstrap-server 192.168.88.82:9092 Error while executing topic command : Timed out waiting for a node assignment. Call: listTopics [2022-02-23 09:55:52,419] ERROR org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment. Call: listTopics
netstat -unltpa|grep 9092
查看你端口的绑定情况,贴一下。
你的答案