【问题标题】:Consuming from a topic at a particular time during a day using spring-kafka使用 spring-kafka 在一天中的特定时间从一个主题消费
【发布时间】:2020-02-15 01:24:13
【问题描述】:

我们需要在一天中的特定时间使用来自特定主题的数据,我们希望我们的 kafka 侦听器仅在一天中的特定时间为特定主题工作。

正在阅读Kafka Scheduler的文章 https://jaceklaskowski.gitbooks.io/apache-kafka/kafka-KafkaScheduler.html

感谢使用 Kafka 调度程序的任何其他方法或任何帮助。 我们将使用 spring kafka 1.3.10.RELEASE 版本

【问题讨论】:

  • 您想从beginning 还是从latest 消费?首先,您必须确保偏移量仍然存在(保留时间)。

标签: spring-boot apache-kafka kafka-consumer-api spring-kafka


【解决方案1】:

自动连接KafkaListenerEndpointRegistry 并调用start()/stop() 以启动/停止所有容器。

您还可以使用registry.getListenerContainer("foo").start() 来启动具有特定id 的容器。

在容器上将 autoStartup 设置为 false,以便 Spring 在启动期间不会自动启动它们。

【讨论】:

  • 感谢@gary 的帮助,因此我们计划启动 2 个计划 cron 作业,一个用于启动容器,另一个用于停止它。 kafkaListenerRegistry.getListenerContainer("kafkaErrorContainerFactory").stop(); kafkaListenerRegistry.getListenerContainer("kafkaErrorContainerFactory").start();您在此看到的任何其他内容
  • 除了您应该将autoStartup 设置为false 并有一些逻辑来测试应用程序是否在“活动”时间启动并在那里启动。
  • 由于 kafka 侦听器 bean 名称未得到解析而出现空指针错误
  • 你不应该问这样的新问题;提出一个新问题并在必要时参考这个问题。您需要将@KafkaListener.id 设置为某个值并在getListenerContainer() 方法中使用它。
  • 我们可以将它与 kafka-clients 和 KafkaConsumer 一起使用吗?
猜你喜欢
  • 2021-07-13
  • 2017-02-23
  • 2016-09-04
  • 2019-09-26
  • 2019-06-23
  • 2019-02-22
  • 1970-01-01
  • 2018-09-26
  • 1970-01-01
相关资源
最近更新 更多