如何暂停 Kafka Consumers 的轮询行为?
How can I pause the polling behavior of Kafka Consumers?
我想在特定时间停止对特定主题的投票。
- spring-开机2.X
- spring-kafka 2.5.5
- 卡夫卡版本 2.5.1
比如TEST主题分区即使有消息进来,消息也堆在00到01分区,没有消费。
01点后,我想在TEST主题上再次消费消息
如何暂停和恢复?
使用KafkaListenerEndpointRegistry
bean 来控制侦听器容器的生命周期;你可以根据你想要的任何条件停止和启动它们。
您还可以将它们配置为停止,直到您明确启动它们。
见https://docs.spring.io/spring-kafka/docs/current/reference/html/#kafkalistener-lifecycle。
@KafkaListener(id = "myContainer", topics = "myTopic", autoStartup = "false")
public void listen(...) { ... }
和
@Autowired
private KafkaListenerEndpointRegistry registry;
...
this.registry.getListenerContainer("myContainer").start();
...
我想在特定时间停止对特定主题的投票。
- spring-开机2.X
- spring-kafka 2.5.5
- 卡夫卡版本 2.5.1
比如TEST主题分区即使有消息进来,消息也堆在00到01分区,没有消费。
01点后,我想在TEST主题上再次消费消息
如何暂停和恢复?
使用KafkaListenerEndpointRegistry
bean 来控制侦听器容器的生命周期;你可以根据你想要的任何条件停止和启动它们。
您还可以将它们配置为停止,直到您明确启动它们。
见https://docs.spring.io/spring-kafka/docs/current/reference/html/#kafkalistener-lifecycle。
@KafkaListener(id = "myContainer", topics = "myTopic", autoStartup = "false")
public void listen(...) { ... }
和
@Autowired
private KafkaListenerEndpointRegistry registry;
...
this.registry.getListenerContainer("myContainer").start();
...