Java 如何设置不同的消费群体id';在Spring boot Kafka中的同一消费者工厂bean是什么?
我想为不同的消费者使用相同的consumerfactory和consumerlistenercontainerfactory。如何在consumerfactory中添加或替换多个groupid 有人能推荐一下吗 这是我的consumerfactory和ConsumerListenerContainerFactorybeanJava 如何设置不同的消费群体id';在Spring boot Kafka中的同一消费者工厂bean是什么?,java,spring-boot,apache-kafka,kafka-consumer-api,spring-kafka,Java,Spring Boot,Apache Kafka,Kafka Consumer Api,Spring Kafka,我想为不同的消费者使用相同的consumerfactory和consumerlistenercontainerfactory。如何在consumerfactory中添加或替换多个groupid 有人能推荐一下吗 这是我的consumerfactory和ConsumerListenerContainerFactorybean @Bean public ConsumerFactory<String, Anky> consumerFactory() { M
@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
@Bean
公共消费者工厂消费者工厂(){
Map props=kafkaProperties.buildConsumerProperties();
返回新的DefaultKafkanConsumerFactory(props,new StringDeserializer(),
新的JsonDeserializer(Anky.class,false));
}
@豆子
公共ConcurrentKafkaListenerContainerFactory kafkaListenerContainerFactory(){
ConcurrentKafkListenerContainerFactory=新ConcurrentKafkListenerContainerFactory();
setConsumerFactory(consumerFactory());
factory.getContainerProperties().setAckMode(AckMode.MANUAL_IMMEDIATE);
工厂设置并发(3);
返回工厂;
}
**组id在application.properties中定义************
spring.kafka.consumer.group id=test\u consumer\u group
我想在这里设置多个消费者GroupID。有办法吗?您可以在
@KafkaListener
@KafkaListener(id = "consumer1", topics = {"topic1"}, groupId = "group1")
public void consume1(){
}
@KafkaListener(id = "consumer2", topics = {"topic2"}, groupId = "group2")
public void consume2(){
}
还需要在ConsumerFactorybean中设置组id。。。我的问题是,我怎样才能添加超过1个呢?你能告诉我你是如何使用卡夫卡日志的吗?据我所知,您只能在consumer factory中设置一个组ID。告诉我为什么需要设置多个组ID?同一主题中的多个groupid意味着多次读取相同的数据。如果在
@KafkaListener
上未指定groupid
或id
属性,则工厂中的group.id
仅为默认值。如果要在属性中设置批注,可以在批注上使用groupId=“${some.group.id}”
。