kafka消费多个topic的使用
我们在业务中难免遇到一个kafka消费多个topic的消息,本文帮助大家如何在业务中用一个类消费多个topic消息
一、不同kafka的不同topic
配置类1
@EnableKafka
@Configuration
public class KafkaOneConfig {
@Value("${spring.kafka.one.bootstrap-servers}")
private String bootstrapServers;
@Value("${spring.kafka.one.consumer.group-id}")
private String groupId;
@Value("${spring.kafka.one.consumer.enable-auto-commit}")
public boolean enableAutoCommit;
@Value("${spring.kafka.consumer.consumer.batch}")
public boolean batch;
@Value("${spring.kafka.consumer.max-poll-records}")
public String maxPollRecordsConfig;
@Value("${spring.kafka.consumer.auto-offset-reset}")
public String autoOffsetReset;
@Value("${spring.kafka.properties.request.timeout.ms}")
public Integer requestTimeout;
@Bean
KafkaListenerContainerFactory<ConcurrentMessageListenerContainer<Integer, String>> kafkaOneListenerContainer() {
//注意不同kafka的这个方法名不同
ConcurrentKafkaListenerContainerFactory<Integer, String> factory = new ConcurrentKafkaListenerContainerFactory<>();
factory.setConsumerFactory(consumerFactory());
extracted(factory);
return factory;
}
public void extracted(ConcurrentKafkaListenerContainerFactory<Integer, String> factory