来自远程服务器的Kafka Producer

时间:2020-03-06 13:07:27

标签: apache-kafka kafka-consumer-api kafka-producer-api

我正在使用Apache Kafka版本(2.1.0)开发流式API。我有一个Kafka集群和一个外部服务器。 外部服务器将产生要在Kafka群集上使用的数据。

让我们将外部服务器表示为 E ,将集群表示为 C E 未安装Kafka。我在其上运行JAR文件以生成消息。这是生产者属性的代码段:

properties.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "bootstrapIp:9092");
properties.put(ProducerConfig.CLIENT_ID_CONFIG, "producer");

我将bootstrapIp设置为Kafka经纪人IP。

在集群方面,我使用以下命令启动使用者控制台:

kafka-console-consumer --bootstrap-server bootstrapIp:9092 --topic T1 --from-beginning

我将bootstrapIp设置为集群引导服务器IP。

在群集上运行生产者和使用者时,它工作得很好,但是当我在外部服务器( E )中运行生产者和群集中的使用者( C)时, )未消耗的数据。

在localhost中,当我在群集中运行生产者和使用者( C )时,所有事情都运行良好,而在外部运行生产者时,我无法使用其中的数据集群。

从群集( C )到外部服务器( E )的ping工作正常,但是我看不出问题出在哪里。

我不知道如何使用来自外部服务器的消息。

编辑

我从外部服务器( E )远程登录( bootstrapIp ): telnet bootstrapIp 9092,它有效,我不明白问题所在

1 个答案:

答案 0 :(得分:0)

Tbis 对我有用: 从 server.properties 取消注释

listeners=PLAINTEXT://:9092

advertised.listeners=PLAINTEXT://<HOST IP>:9092

替换为实际 IP。我的情况:

advertised.listeners=PLAINTEXT://192.168.75.132:9092