java - Apache Kafka 生产者错误 : Failed to send message after 3 tries

标签 java ubuntu apache-kafka kafka-producer-api

我们在 Linux Ubuntu 服务器上安装了 kafka,并使用批处理文件 - kafka-console- Producer.sh kafka-console-consumer.sh 测试了通信发现我们可以发布和接收消息

在同一网络上运行的Windows 计算机上。我们编写了一个java生产者客户端,其代码如图

Properties properties = new Properties();
properties.put("metadata.broker.list","192.168.7.1:9092");
properties.put("serializer.class","kafka.serializer.StringEncoder");
ProducerConfig producerConfig = new ProducerConfig(properties);
kafka.javaapi.producer.Producer<String,String> producer = new kafka.javaapi.producer.Producer<String, String>(producerConfig);
KeyedMessage<String, String> message =new KeyedMessage<String, String>("Calamp2","Test message from java program ");
producer.send(message);
producer.close();

当我们运行客户端时,我们收到以下错误

log4j:WARN No appenders could be found for logger (kafka.utils.VerifiableProperties). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. Failed to send messages after 3 tries.

我们尝试了以下方法

  1. 从 Windows 计算机上 ping 通 ubuntu 计算机,它似乎工作正常
  2. 尝试了 Apache Kafka example error: Failed to send message after 3 tries 中的解决方案,但没有成功

我们观察到一件奇怪的事情,当我们在服务器上运行以下命令时 - bin/kafka-topics.sh --list --zookeeper localhost:2181 ,我们发现主题是从 Java 代码创建的,但消息尚未发布

感谢任何帮助

最佳答案

我们终于解决了这个问题...我们在混合环境中运行 kafka,如下文所述 -

https://medium.com/@thedude_rog/running-kafka-in-a-hybrid-cloud-environment-17a8f3cfc284

我们将host.name更改为内部IP,并将advertising.host.name更改为外部IP。这是同样的问题 Kafka 0.8.2.2 - Unable to publish messages

关于java - Apache Kafka 生产者错误 : Failed to send message after 3 tries,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33054722/

相关文章:

java - 为什么我的结果列表是空的?

java - 电报机器人 java : inline url button does not create an update and thus no callback data to respond on

linux - 在 linux 脚本中使用变量 Ping

php - 如何解决 2 个 Web 服务器之间的性能差异?

apache-kafka - 2 hadoop + kafka 集群中的 zookeeper 服务器集群 - 这可能吗?

java - Spring kafka NonResponsiveConsumerEvent 甚至在broker宕机时触发时间

amazon-s3 - kafka 连接 s3 源无法与 Minio 一起使用

java - Java 中的类格式错误

java - 检查随机数的 boolean 方法

mysql - Ubuntu - 从 mysql 中的命令提示符重新启动 mysql