我们在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找不到记录器的appender (kafka.utils.VerifiableProperties)。 log4j:WARN请初始化 log4j系统正常。 log4j:警告请参阅 http://logging.apache.org/log4j/1.2/faq.html#noconfig了解更多信息。 3次尝试后无法发送消息。
我们尝试了以下
我们观察到一个奇怪的事情,当我们在服务器上运行以下命令时 - bin / kafka-topics.sh --list --zookeeper localhost:2181,我们发现主题是从Java代码创建的,但消息未发布
感谢任何帮助
答案 0 :(得分:1)
我们终于找到了问题......我们在混合环境中运行kafka,如下文所述 -
https://medium.com/@thedude_rog/running-kafka-in-a-hybrid-cloud-environment-17a8f3cfc284
我们将host.name更改为内部IP,并将advertised.host.name更改为外部IP。这是同样的问题 Kafka 0.8.2.2 - Unable to publish messages