java - 如何在 Spring Boot Kafka 中为同一个消费者工厂 bean 设置不同的消费者组 ID?
问题描述
我想为不同的消费者使用相同的 consumerfactory 和 consumerlistenercontainerfactory。如何在 consumerfactory 中添加或替换超过 1 个 groupid?
有人可以建议吗?
这是我的 consumerfactory 和 consumerlistenercontainerfactory bean。
@Bean
public ConsumerFactory<String, Anky> consumerFactory() {
Map<String, Object> props = kafkaProperties.buildConsumerProperties();
return new DefaultKafkaConsumerFactory<>(props, new StringDeserializer(),
new JsonDeserializer<>(Anky.class, false));
}
@Bean
public ConcurrentKafkaListenerContainerFactory<String, Anky> kafkaListenerContainerFactory() {
ConcurrentKafkaListenerContainerFactory<String, Anky> factory = new ConcurrentKafkaListenerContainerFactory<>();
factory.setConsumerFactory(consumerFactory());
factory.getContainerProperties().setAckMode(AckMode.MANUAL_IMMEDIATE);
factory.setConcurrency(3);
return factory;
}
**Group id is defined in the application.properties************
spring.kafka.consumer.group-id=test_consumer_group
我想在这里设置多个消费者 groupid。有办法我可以做到吗?
解决方案
您可以将 groupId 设置为@KafkaListener
@KafkaListener(id = "consumer1", topics = {"topic1"}, groupId = "group1")
public void consume1(){
}
@KafkaListener(id = "consumer2", topics = {"topic2"}, groupId = "group2")
public void consume2(){
}
推荐阅读
- c++ - ZMQ 上下文被终止(线程)
- python - 如何在python中动态返回当前时间
- javascript - svg url 不使用 parceljs 编译
- python - 无法更改 matplotlib 中的默认颜色图
- service - 无法在 PowerBI 服务中计划刷新
- amazon-web-services - 如何将 DynamoDB 流连接到 kinesis 流?
- javascript - 如何在数组中返回非重复值?
- angular - 将 Ionic 4 应用程序连接到同一网络上的 WebSocket
- node.js - 使用 apollo 和 express 的全局变量
- symfony - 在循环中获取新创建的条目 ID