我正在使用 Apache Kafka 版本 (2.1.0) 开发流 API。我有一个 Kafka 集群和一个外部服务器。外部服务器将生成供 Kafka 集群使用的数据。
我们将外部服务器表示为E,将集群表示为C。E没有安装Kafka。我在它上面运行一个 JAR 文件来生成消息。以下是 Producer 属性的片段 :
properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "bootstrapIp:9092");
properties.put(ProducerConfig.CLIENT_ID_CONFIG, "producer");
Run Code Online (Sandbox Code Playgroud)
我设置bootstrapIp为 Kafka 代理 IP。
在集群端,我使用以下命令启动消费者控制台:
kafka-console-consumer --bootstrap-server bootstrapIp:9092 --topic T1 --from-beginning
Run Code Online (Sandbox Code Playgroud)
我设置bootstrapIp为集群引导服务器IP。
当在集群上运行生产者和消费者时,它工作得很好,但是当我在外部服务器(E )中运行生产者和在集群( C )中运行消费者时,数据没有被消耗。
在本地主机中,当我在集群( C )中运行生产者和消费者时,一切都工作正常,一切都工作正常,当在外部运行生产者时,我无法使用集群中的数据。
从集群 ( C ) 到外部服务器 ( E ) 的ping工作正常,但我看不出问题到底出在哪里。
我无法弄清楚如何使用来自外部服务器的消息。
编辑
从外部服务器(E)我telnet(bootstrapIp):telnet bootstrapIp 9092并且它有效,我不明白这个问题