Java 如何使用手动轮询运行kafka消费者

Java 如何使用手动轮询运行kafka消费者,java,spring-boot,apache-kafka,kafka-consumer-api,Java,Spring Boot,Apache Kafka,Kafka Consumer Api,我必须创建一个卡夫卡消费者作为我的应用程序的一部分。但是由于用例的原因,我不得不手动轮询。因为每当投票不返回任何来自主题的消息时,我必须采取某些步骤。我无法使用SpringKafka实现这一点,因为它只在收到消息时调用 应用程序启动时,是否有任何方法运行此使用者? 我曾想过使用CommandLineRunner,但它似乎并不干净() 或者如果我使用SpringKafka,有没有办法知道某个特定分区或主题是否没有事件 我可以考虑在一个单独的线程中启动它,或者使用CommandLineRunner。

我必须创建一个卡夫卡消费者作为我的应用程序的一部分。但是由于用例的原因,我不得不手动轮询。因为每当投票不返回任何来自主题的消息时,我必须采取某些步骤。我无法使用SpringKafka实现这一点,因为它只在收到消息时调用

应用程序启动时,是否有任何方法运行此使用者? 我曾想过使用CommandLineRunner,但它似乎并不干净()

或者如果我使用SpringKafka,有没有办法知道某个特定分区或主题是否没有事件


我可以考虑在一个单独的线程中启动它,或者使用CommandLineRunner。有没有更好的解决方案的建议?

简单的解决方案。不要使用弹簧卡夫卡或
@KafkaListener


自己制作一个简单的
KafkaConsumer
对象。调用
poll()
。检查
count()
简单解决方案。不要使用弹簧卡夫卡或
@KafkaListener


自己制作一个简单的
KafkaConsumer
对象。调用
poll()
。检查
count()

是,只有我在做。我创建了一个调用poll()的方法。但是该方法需要从某个地方调用,并且该方法需要一直在后台执行。没有触发器来调用此方法,但当主题为emply时,此方法必须触发某些内容,即poll()返回空记录。我只是简单地回答了您最初发布的内容。如果需要后台作业,请创建ExecutorService或Thread类。查找“观察者模式”。这不是卡夫卡的特例,因为它是Spring Boot,请使用EnableScheduling注释并将轮询方法标记为Scheduled。-这是cricket_007推荐的,但是Spring为您处理管道。是的,只有我在做。我创建了一个调用poll()的方法。但是该方法需要从某个地方调用,并且该方法需要一直在后台执行。没有触发器来调用此方法,但当主题为emply时,此方法必须触发某些内容,即poll()返回空记录。我只是简单地回答了您最初发布的内容。如果需要后台作业,请创建ExecutorService或Thread类。查找“观察者模式”。这不是卡夫卡的特例,因为它是Spring Boot,请使用EnableScheduling注释并将轮询方法标记为Scheduled。-这是cricket_007推荐的,但Spring为您处理管道。