是否有读取 Kafka 主题的 Spring Schedule 示例?

Rom*_*gan 1 apache-kafka spring-scheduled kafka-consumer-api spring-kafka

我们试图在指定的窗口时间从 Kafka 读取数据(所以我们有 Kafka 消费者),这意味着避免在其他时间读取数据。但是,我们不确定如何在时间段到期后关闭消费者。我想知道是否有任何示例可以说明如何做到这一点?非常感谢您帮助我们。

Dea*_*ool 6

您可以使用KafkaListenerEndpointRegistry和方法 @KafkaListener Lifecycle Management禁用autoStartup然后手动启动 kafkacontainers startstop

public class KafkaConsumer {

 @Autowired
 private KafkaListenerEndpointRegistry registry;

  @KafkaListener(id = "myContainer", topics = "myTopic", autoStartup = "false")
  public void listen(...) { ... }

  @Schedule(cron = "")
  public void scheduledMethod() {

   registry.start();

   registry.stop()
  }
Run Code Online (Sandbox Code Playgroud)

但是在上述方法中,不能保证在该时间范围内会消耗来自 kafka 的所有消息(这取决于负载和处理速度)