1

我们在 Linux Ubuntu 服务器上安装了 kafka,并使用批处理文件 - kafka-console-producer.shkafka-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 找不到记录器的附加程序(kafka.utils.VerifiableProperties)。log4j:WARN 请正确初始化 log4j 系统。log4j:WARN 有关详细信息,请参阅 http://logging.apache.org/log4j/1.2/faq.html#noconfig。3 次尝试后发送消息失败。

我们尝试了以下

  1. 从 Windows 机器 ping ubuntu 机器,它似乎工作正常
  2. 尝试了Apache Kafka 示例错误中的解决方案:在 3 次尝试后无法发送消息,但它不起作用

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

任何帮助表示赞赏

4

1 回答 1

1

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

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

我们将 host.name 更改为内部 IP,将 Advertisementd.host.name 更改为外部 IP。这与 Kafka 0.8.2.2 的问题相同 - 无法发布消息

于 2015-11-08T12:41:33.373 回答