![](/img/trans.png)
[英]How to set multiple consumers in the same topic in Kafka using Quarkus
[英]@StreamListener define groupId for kafka- How can I set many consumers for the same topic
我在我的應用程序中使用 java 和 springboot 和 Kafka。
我想在 Kafka 中為同一主題定義許多消費者。 現在,我在我的應用程序屬性文件中定義組 ID:
spring.cloud.stream.bindings.myFirstTopic.destination=my-first-topic
spring.cloud.stream.bindings.myFirstTopic.group=my-first-consumer
在我使用注釋的方法上:
@StreamListener(MyFirstTopicBinding.MY_FIRST_TOPIC)
public void firstConsumer(@Payload MessageDto dto) {}
@StreamListener(MyFirstTopicBinding.MY_FIRST_TOPIC)
public void secondConsumer(@Payload MessageDto dto) {}
我希望這兩種方法都能得到相同的消息....
我該怎么做?
你不能這樣做; 你需要給每個人一個不同的頻道名稱,然后
spring.cloud.stream.bindings.myFirstConsumer.destination=my-first-topic
spring.cloud.stream.bindings.myFirstConsumer.group=my-first-consumer
spring.cloud.stream.bindings.mySecondConsumer.destination=my-first-topic
spring.cloud.stream.bindings.mySecondConsumer.group=my-second-consumer
此外, @StreamListener
已被棄用,很快將被刪除; 您應該轉換為功能 model。
@Bean
Consumer<MessageDto> myFirstConsumer() {
return dto -> {...};
}
@Bean
Consumer<MessageDto> mySecondConsumer() {
return dto -> {...};
}
然后
spring.cloud.function.definition=myFirstConsumer;mySecondConsumer
spring.cloud.stream.bindings.myFirstConsumer-in-0.destination=my-first-topic
spring.cloud.stream.bindings.myFirstConsumer-in-0.group=my-first-consumer
spring.cloud.stream.bindings.mySecondConsumer-in-0.destination=my-first-topic
spring.cloud.stream.bindings.mySecondConsumer-in-0.group=my-first-consumer
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.