最近准备把SpringMVC的代码全部改成SpringBoot。SpringMvc的项目逐步切向SpringBoot,这可能是一个趋势,就连redis、dubbo、kafka这些常用并且很重要的开源框架也提供了SpringBoot的版本,微服务化越来越简单、规范。
在项目中遇到Kafka的多配置,SpringMvc下采用不同的bean的方式配置多个数据源,网上的资料虽然有很多,但是都是通过原生的方式,所以记录一下在SpringBoot下配置多kafka中心。
直接进入主题吧。
1.Pom.xml文件
<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>2.0.1</version> </dependency> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-streams</artifactId> <version>2.0.1</version> </dependency> <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> </dependency>
2.SpringBoot配置文件
这里主要是使用yml文件的方式,跟application.properties类似。yml文件更有层次感,并且可以收缩,比较方便。
application.yml:
kafka1:
kafka:
bootstrap-servers: localhost1:9092
producer:
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.apache.kafka.common.serialization.ByteArraySerializer
kafka2:
kafka:
bootstrap-servers: localhost2:9092
producer:
key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.apache.kafka.common.serialization.ByteArraySerializer
3.Java类
KafkaProperties.java
KafkaProperties对应yml文件的关系,kafka:kafka下面一个层级对应一个对象,如果该对象包含其他参数(下一个层级还有对象),则该对象是一个类。