由于工作需要,最近在研究springboot整合kafka。做一个分布式的同步应用程序。springboot整合kafka须注意版本。对于springboot 1.5版本之前的话,需要自己去配置java configuration,而1.5版本以后则提供了auto config,具体详见org.springframework.boot.autoconfigure.kafka这个包,springboot集成kafka的默认配置都在这个包里面。
springboot实现kafka的消息生产者
从kafka的角度来看,消息生产者要做的事情无非就是把消息发送到指定的topic。这个流程还是比较简单的。
spring-kafka提供了KafkaTemplate包装了一个生产者,并提供了方便的方法将数据发送到kafka的主题。
KafkaTemplate提供的发送消息方法:
从方法传的参数我们知道KafkaTemplate可以向指定主题、分区,还有主题中的Key(如果有的话)发送消息。利用Springboot(1.5版本及以上)整合kafka实现消息发送比较简单。
1、创建一个springboot工程。导入kafka相关依赖,注意spring版本与kafka对应版本需要对应。我的springboot版本是2.0.2,spring-kafka的版本是2.1.0。
添加spring-kafka依赖:
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>2.1.0.RELEASE</version>
</dependency>
Kafka生产者配置类:
package com.rose.kafka.config; import org.apache.kafka