我们已经在linux-ubuntu服务器上安装了kafka,并使用批处理文件kafka-console-producer.sh和kafka-console-consumer.sh测试了通信,发现我们可以发布和接收消息
在同一网络上运行的windows计算机上。我们编写了一个java producer客户机,其代码如下所示
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:请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig 更多信息。尝试3次后发送消息失败。
我们尝试了以下方法
从windows机器上ping了ubuntu机器,它似乎工作正常
尝试了来自apache kafka的解决方案示例错误:尝试3次后发送消息失败,但无法工作
我们注意到一件奇怪的事情,当我们在服务器上运行以下命令-bin/kafka-topics.sh--list--zookeeperlocalhost:2181 ,我们发现主题是从java代码创建的,但消息没有发布
感谢您的帮助
1条答案
按热度按时间z2acfund1#
我们终于解决了问题。。。我们在一个混合环境中运行Kafka,如以下文章所述-
https://medium.com/@thedude_rog/running-Kafka混合云环境17a8f3cfc284
我们将host.name更改为内部ip,将advised.host.name更改为外部ip。这与kafka 0.8.2.2的问题相同-无法发布消息