要实现在不需要运行kafka服务器的情况下启动spring boot应用程序,我用以下方式用autostartup = false定义了使用者:
@KafkaListener(id = "myContainer", topics = {"myTopic"}, autoStartup = "false")
public void receive(ConsumerRecord<String, Foo> consumerRecord) {
log.info("consuming {}", consumerRecord);
}
现在开始最初的消费者,我将其与生产者中该主题的生产者联系起来:
public void sendFoo(Foo foo) {
try {
kafkaListenerEndpointRegistry.getListenerContainer("myContainer").start();
}catch(Exception e){
log.info(e.getMessage());
}
kafka.send(mytopic, foo);
}
这是推荐的模式还是存在更好的模式?