我们在 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 找不到记录器的附加程序(kafka.utils.VerifiableProperties)。log4j:WARN 请正确初始化 log4j 系统。log4j:WARN 有关详细信息,请参阅 http://logging.apache.org/log4j/1.2/faq.html#noconfig。3 次尝试后发送消息失败。
我们尝试了以下
- 从 Windows 机器 ping ubuntu 机器,它似乎工作正常
- 尝试了Apache Kafka 示例错误中的解决方案:在 3 次尝试后无法发送消息,但它不起作用
我们观察到一件奇怪的事情,当我们在服务器上运行以下命令时 - bin/kafka-topics.sh --list --zookeeper localhost:2181 ,我们发现主题是从Java代码创建的,但消息没有发布
任何帮助表示赞赏