当前位置: 首页 > 知识库问答 >
问题:

具有新API的Kafka消费者不工作

华英睿
2023-03-14

我发现Kafka有一些非常奇怪的地方。

我有一个制片人,有三个经纪人:

bin/kafka-console-producer.sh --broker-list localhost:9093, localhost:9094, localhost:9095 --topic topic

然后,我尝试使用新的API运行消费者:

bin/kafka-console-consumer.sh --bootstrap-server localhost:9093,localhost:9094,localhost:9095 --topic topic --from-beginning

我什么都没有!但是如果我使用旧的API:

bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic topic

我收到我的留言了!

我怎么了?

PS:我用的是Kafka10

共有1个答案

胡锋
2023-03-14

多亏了这篇类似的文章,我最终解决了我的问题:Kafka引导服务器与Kafka控制台消费者中的动物园管理员

我相信是我的错误配置导致了动物园管理员和Kafka的问题。

解决方案:

首先确保在server中启用主题删除。经纪人的属性文件:

# Switch to enable topic deletion or not, default value is false
delete.topic.enable=true

然后删除主题:

bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic myTopic

删除代理的所有/tmp/log.dir目录。

编辑:我又遇到了这个问题,我还必须删除/tmp/zookeeper/version-2/中zookeoper的日志文件。

最后删除动物园管理员中 /经纪人/主题中的主题,如下所示:

$ kafka/bin/zookeeper-shell.sh localhost:2181
Connecting to localhost:2181
Welcome to ZooKeeper!
JLine support is disabled

rmr /broker/topics/mytopic

重启你的经纪人,再次创造你的话题。

 类似资料:
  • 我是一个新的Kafka。我开始做Kafka,我面临以下问题,请帮助我解决这一个,提前谢谢。首先,我正在编写生产者API,它工作良好,但在编写消费者API时,消息不会显示。 我的代码是这样的: 已订阅主题Hello-Kafka records::org.apache.kafka.clients.consumer.consumerRecords@76b0bfab org.apache.kafka.cl

  • 我正在为Kafka0.9.0.0做Kafka快速入门。 我让zookeeper在监听,因为我运行了 只有一个代理在处侦听,因为我运行了 我有一个制作人在主题“测试”上发帖,因为我跑了 当我运行旧的API使用者时,它通过运行 但是,当我运行新的API使用者时,我在运行时没有得到任何东西 是否可以使用新的API从控制台使用者订阅主题?我该怎么修好它?

  • 我最近开始学习Kafka,最后就问了这些问题。 > 消费者和流的区别是什么?对我来说,如果任何工具/应用程序消费来自Kafka的消息,那么它就是Kafka世界中的消费者。 流与Kafka有何不同?为什么需要它,因为我们可以使用消费者API编写自己的消费者应用程序,并根据需要处理它们,或者将它们从消费者应用程序发送到Spark? 我做了谷歌对此,但没有得到任何好的答案。抱歉,如果这个问题太琐碎了。

  • 消费者使用Spring的JavaConfig类如下: Kafka主题侦听器使用@KafkaListener注释,如下所示: 我的pom包括依赖项: 现在当我打包到war并部署到tomcat时,它不会显示任何错误,即使在调试模式下也不会显示任何错误,只是部署war什么都没有。 请帮助我了解是否缺少触发kafkalistner的某些配置。 谢谢Gary我添加了上下文。xml和web。xml,但我得到了

  • 我正在尝试让 kafka 消费者获取在 Java 中生成并发布到主题的消息。我的消费者如下。 consumer.java 当我运行上面的代码时,我在控制台中什么也看不到,屏幕后面的java producer程序正在‘AATest’主题下不断地发布数据。另外,在动物园管理员控制台中,当我尝试运行上面的consumer.java时,我得到了以下行 此外,当我运行指向 AATest 主题的单独控制台使用

  • 是否有一种方法以编程方式访问和打印使用者滞后偏移,或者说使用者读取的最后一条记录的偏移与某个生产者写入该使用者分区的最后一条记录的偏移之间的位置差。 要知道我的最终目标是将这个值发送到prometheus进行监视,我应该在上面添加哪些语句来得到滞后偏移值?