Kafka - 在 Linux 和 Windows 之间创建代理侦听器时出错

Posted

技术标签:

【中文标题】Kafka - 在 Linux 和 Windows 之间创建代理侦听器时出错【英文标题】:Kafka - Error creating broker listeners between Linux and Windows 【发布时间】:2021-01-26 15:20:47 【问题描述】:

我们正在尝试使用 apache Kafka 从 Linux 向 Windows 发送消息; Zookeeper 和 Kafka 在操作系统和消息传递中都配置在各自的 localhost 中;

从 Windows 向 Linux 发送消息时出错;

错误 - 错误 向主题 my_topic 发送消息时出错,键:null,值:5 个字节,错误:(org.apache.kafka.clients.producer.internals.ErrorLoggingCallback) org.apache.kafka.common.errors.TimeoutException:主题 my_topic 在 60000 毫秒后不存在于元数据中。

[2020-10-09 11:24:22,903] WARN [Producer clientId=console-producer] 获取相关 ID 为 51 的元数据时出错:my_topic=LEADER_NOT_AVAILABLE (org.apache.kafka.clients.NetworkClient) 终止批处理作业 (Y/N)?

[20-10-09 11:24:28,979] WARN [Consumer clientId=consumer-1, groupId=console-consumer-56715] 获取相关 ID 为 81 的元数据时出错:my_topic=LEADER_NOT_AVAILABLE (org.apache .kafka.clients.NetworkClient) 共处理0条消息

Listed below are the configuration files for Linux server endpoint 
    
#producer properties
metadata.broker.list=localhost:9092,192.168.1.3:9092,192.168.0.103:9092 

#consumer properties
zookeeper.connect=127.0.0.1:2181,192.168.1.3:2181,192.168.0.103:2181
#consumer group id
group.id=test-consumer-group


#server properties
broker.id=1
listeners=PLAINTEXT://localhost:9092
advertised.listeners=PLAINTEXT://192.168.1.3:9092,192.168.0.103:9092
zookeeper.connect=localhost:2181


#192.168.0.103 is windows machine
#172.22.3.28 is Linux machine

Windows producer – 
kafka-console-producer.bat --broker-list 172.22.3.28:9092 --topic my_topic

Linux Consumer-
bin/kafka-console-consumer.sh --new-consumer --bootstrap-server 192.168.0.103:9092 --topic my_topic --from-beginning

我们开始在 linux 和 windows 中配置 kafka 个人并成功通过 localhost 发送消息。 假设使用 kafka 可以跨操作系统进行实时消息传递。请更正。

【问题讨论】:

您如何从子网 192.xxx 连接到 172.xxx? 【参考方案1】:

您需要配置advertised.listeners 以便Windows 客户端可以正确连接到Linux 代理。

如果 Linux 代理的 IP 为 172.22.3.28,则配置应如下所示:

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://172.22.3.28:9092

参考:https://www.confluent.io/blog/kafka-client-cannot-connect-to-broker-on-aws-on-docker-etc

【讨论】:

以上是关于Kafka - 在 Linux 和 Windows 之间创建代理侦听器时出错的主要内容,如果未能解决你的问题,请参考以下文章

windows/linux 安装zookeeper + Kafka (含自启动)运行教学

kafka能不能安装在windows环境下

Kafka在Windows下的安装和目录结构

怎样安装Kafka?

windows下怎么安装kafka

Kafka快速入门——Kafka集群部署