我写了一个kafka
consumer
和producer
,直到今天仍然正常。
今天早上,当我开始zooekeeper
和kafka
时,我的消费者没有成功阅读消息,而Zookeeper log
我读了这个错误
INFO Got user-level KeeperException when processing sessionid:0x151c41e62e10000 type:create cxid:0x2a zxid:0x1e txntype:-1 reqpath:n/a Error Path:/brokers/ids Error:KeeperErrorCode = NodeExists for /brokers/ids (org.apache.zookeeper.server.PrepRequestProcessor)
你可以帮帮我吗?在短短几天内可能会发生什么变化?我不明白。
非常感谢你。
答案 0 :(得分:3)
在server.properties文件中查找 log.dirs ,然后从此处删除所有Kafka和zookeeper日志,然后分别尝试重新启动zookeeper和Kafka。我遇到了同样的问题,并且解决了这个问题。
答案 1 :(得分:0)
我在Windows 7上运行的Kafka 2.11中出现此错误。 我认为这个例外不是问题,因为它只是信息级别。只需确保代理仍在运行。即使有这个错误,我仍然可以:
kafka-topics.bat
。kafka-console-consumer.bat
。producer.send(new ProducerRecord<String, String>("topic", "hello"))
。答案 2 :(得分:0)
根据2016年10月8日https://groups.google.com/forum/#!topic/confluent-platform/h0gEik_Ii1E的汇合情况
这些不是错误,您可以看到日志级别为INFO。很简单 记录卡夫卡试图创建一个已经存在的节点。完全 卡夫卡的正常行为,不必担心。
是否存在与消息相关的实际问题,或者一切正常吗?
答案 3 :(得分:0)
转到Kafka根目录并查找日志文件。并清除所有日志。例如: 说您的kafka已安装在下载文件夹中:
cd ~/Downloads/kafka_2.13-2.6.0
rm -rf logs
它将解决问题。
答案 4 :(得分:-1)
在我的情况下,它确实会影响功能,因为我无法使用消息。见下面的代码
Vertx instance = VertxConfig.getInstance();
Properties consumerConfig = new Properties();
consumerConfig.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
consumerConfig.put(ConsumerConfig.KEY_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
consumerConfig.put(ConsumerConfig.VALUE_DESERIALIZER_CLASS_CONFIG, StringDeserializer.class);
// consumerConfig.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG,&#34;最早&#34;); // consumerConfig.put(ConsumerConfig.ENABLE_AUTO_COMMIT_CONFIG,&#34; false&#34;);
Properties producerConfig = new Properties();
producerConfig.put(ConsumerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");
producerConfig.put("acks", "1");
String topic = "dstv-queue-3";
consumer = KafkaConsumer.create(instance, consumerConfig);
producer = KafkaProducer.create(instance, producerConfig, String.class, String.class);
consumer.subscribe(topic);
instance.setPeriodic(2000, worker -> {
KafkaProducerRecord<String, String> record = KafkaProducerRecord.create(topic, "message");
producer.write(record, writeHandler -> {
RecordMetadata metadata = writeHandler.result();
//if meta data returned..
if (metadata != null) {
long offset = metadata.getOffset();
int partition = metadata.getPartition();
System.out.println("completed write: " + (writeHandler.succeeded() ? "successful" : "failed") + " offset:" + offset + " partition: " + partition);
}
});
});
AtomicLong counter = new AtomicLong();
consumer.handler(readHandler -> System.out.println(counter.getAndAdd(1) + ". " + readHandler.value() + " was received"));