Spring Boot 自定義kafka 消費者配置 ContainerFactory最佳實踐
阿新 • • 發佈:2020-04-26
# Spring Boot 自定義kafka 消費者配置 ContainerFactory最佳實踐
> 本篇博文主要提供一個在 SpringBoot 中自定義 kafka配置的實踐,想象這樣一個場景:你的系統需要監聽多個不同叢集的訊息,在不同的叢集中topic衝突了,所以你需要分別定義kafka訊息配置。
此篇文章會在SpringBoot 提供的預設模板上提供擴充套件,不會因為你自定義了消費者配置,而導致原生SpringBoot的Kakfa模板配置失效。
## 引入 MAVEN 依賴
> 版本需要你自己指定
```
com.alibaba
fastjson
xxx
org.springframework.kafka
spring-kafka
xxx
org.apache.kafka
kafka-clients
xxx
```
## 引入Java配置類
```java
/**
* 手動自定義 kafka 消費者 ContainerFactory 配置demo
*/
@Configuration
@EnableConfigurationProperties(KafkaProperties.class)
public class KafkaConsumerConfig {
@Autowired
private KafkaProperties properties;
@Value("${監聽服務地址}")
private List myServers;
@Bean("myKafkaContainerFactory")
@ConditionalOnBean(ConcurrentKafkaListenerContainerFactoryConfigurer.class)
public ConcurrentKafkaListenerContainerFactory, ?> kafkaListenerContainerFactory(
ConcurrentKafkaListenerContainerFactoryConfigurer configurer) {
ConcurrentKafkaListenerContainerFactory