我从客户端收到带有 python 的消息,但服务器上没有带有 python 的消息?

I get message from client with python but there is no message on server with python?

当我编写此代码并运行它在我的桌面上时它可以工作。

from kafka import KafkaConsumer

consumer = KafkaConsumer('ersin_test',
                         group_id='eg61-group',
                         auto_offset_reset='earliest',
                         enable_auto_commit=False,
                         consumer_timeout_ms=10000,
                         bootstrap_servers=['10.1.2.3:9092'])

for message in consumer:
    print(message)

但是当我将此代码移动到不同的机器(服务器)时,它没有从 kafka 收到任何消息。 我 运行 这个代码是这样的:python my_script.py

我的服务器已连接kafka服务器:

telnet 10.1.2.3 9092


Trying 10.1.2.3...
Connected to 10.1.2.3.
Escape character is '^]'.

当我 运行 服务器上的这段代码工作时,它可以从 kafka

获取主题名称
import kafka
consumer = kafka.KafkaConsumer(group_id='eg61-group',bootstrap_servers=['10.1.2.3:9092'])
t=consumer.topics()
print(t)

{'ersin_test', 'second-topic', 'abc', 'ESB', 'first-topic', 'ersin-topic'}

所以我看不懂是什么问题

我该如何解决这个问题?

提前致谢。

代理已将 advertised.listeners 设置为 myname,但此 DNS 主机名无法从您的客户端计算机解析。 这意味着当与 IP 地址的初始 bootstrap 连接成功时,代理 returns myname 作为客户端应发出 consume/produce 请求的主机名,并且由于客户端无法解决 myname 失败。

您应该修复您的 DNS,以便您的客户端计算机可以正确解析 myname。如果这不是一个选项,那么重新配置您的 Kafka 代理以将 advertised.listeners 设置为 IP 地址(即 advertised.listeners=PLAINTEXT://10.1.2.3:9092

参考:https://rmoff.net/2018/08/02/kafka-listeners-explained/