Spring kafka 如何部署处于暂停模式的kafka使用者,直到我发出开始使用消息的信号

Spring kafka 如何部署处于暂停模式的kafka使用者,直到我发出开始使用消息的信号,spring-kafka,Spring Kafka,我正在使用SpringKafka 2.2.8,并试图了解是否有一个选项可以部署处于暂停模式的kafka使用者,直到我发出开始使用消息的信号。请建议 我在下面的帖子中看到,我们可以暂停并启动消费者,但我需要消费者在部署时处于暂停模式。 @KafkaListener(id=“foo”,…,autoStartup=“false”) 准备好后,使用KafkaListenerEndpointRegistry启动它 registry.getListenerContainer("foo").start();

我正在使用SpringKafka 2.2.8,并试图了解是否有一个选项可以部署处于暂停模式的kafka使用者,直到我发出开始使用消息的信号。请建议

我在下面的帖子中看到,我们可以暂停并启动消费者,但我需要消费者在部署时处于暂停模式。
@KafkaListener(id=“foo”,…,autoStartup=“false”)

准备好后,使用
KafkaListenerEndpointRegistry
启动它

registry.getListenerContainer("foo").start();
在暂停模式下启动它没有多大意义,但您可以这样做

@springboot应用程序
公共类SO62329274应用程序{
公共静态void main(字符串[]args){
SpringApplication.run(So62329274Application.class,args);
}
@KafkaListener(id=“so62329274”,topics=“so62329274”,autoStartup=“false”)
公共void侦听(字符串输入){
系统输出打印项次(输入);
}
@豆子
公共新话题(){
返回TopicBuilder.name(“so62329274”).partitions(1).replications(1.build();
}
@豆子
公共应用程序运行程序运行程序(KafkaListenerEndpointRegistry注册表,KafkaTemplate模板){
返回参数->{
发送模板(“so62329274”、“foo”);
registry.getListenerContainer(“so62329274”).pause();
registry.getListenerContainer(“so62329274”).start();
System.in.read();
registry.getListenerContainer(“so62329274”).resume();
};
}
}
分配分区时,您将看到如下日志消息:

卡夫卡由于重新平衡而恢复消费;消费者再次暂停,因此初始poll()将永远不会返回任何记录


您可以设置一个事件侦听器,或某种条件bean,以便在事件发生或条件为metawesome时启动使用者,谢谢@Gary。这就是我想要的一些具体要求。