[英]How to read 2 Kafka topics sequentially in one consumer class using spring boot?
我有 2 個 Kafka 主題 A 和 B。我希望每次我的消費者啟動時,它都會首先轉到主題 A。 主題 A 包含有關主題 B 的信息,我將依賴該信息從主題 B 中獲取數據。
所以本質上我需要先閱讀主題 A,然后再閱讀主題 B,我只需要在每次重新啟動程序時執行一次。
我能想到的事情如下:
@KafkaListener(topics = {"A" , "B"})
或者:
@KafkaListener(topics = "A")
public void receive() {}
@KafkaListener(topics = "B")
public void receive() {}
兩者都不保證閱讀的順序。
在完成主題 A 的最新更新后,如何強制我的程序首先閱讀主題 A,並且僅閱讀主題 B 的 go?
使用這樣的東西...
@KafkaListener(id = "bReceiver", autoStartup = "false, topics = "B")
public void receive() {}
設置idleEventInterval
並添加
@Autowired
KafkaListenerEndpointRegistry registry;
@EventListener(condition = "event.listenerId == 'aReceiver`)
public void eventListener(ListenerContainerIdleEvent event) {
this.registry.getListenerContainer("aReceiver").stop(() -> { });
this.registry.getListenerContainer("bReceiver").start();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.