上一节,搭建了一个单实例的kafka。好不好用还是要测一测的。
下面是一个最简单的SpringBoot中使用kafka的例子
引入依赖:
org.springframework.kafka spring-kafka
只需要增加这一个依赖
这里有大坑,版本不能随便用。kafka的client包必须和安装的kafka版本对应
下面是spring官方给的对应关系https://spring.io/projects/spring-kafka
![a4c58156f20370493479277100214cce.png](https://i-blog.csdnimg.cn/blog_migrate/ab3ba1d7b04149e17cd30045135ddc71.jpeg)
我装的kafka是2.1.0版本,所以应该使用的kafka-client是1.0.x或1.1.x或2.0.0
但是spring-kafka已经依赖了kafka-client,我们需要确认依赖进的是哪个版本
项目的spring-boot-starter-parent版本:2.0.5.RELEASE
点spring-kafka进去看到
org.apache.kafka kafka-clients 1.0.2
kafka-client的版本是1.0.2,满足要求
继续开发代码:
目录:
就是简单的三个文件
![e92441e0a6fef61b4780e3d25bc59fca.png](https://i-blog.csdnimg.cn/blog_migrate/a5af34c4bef8cf2db1f6944d781eead1.jpeg)
先看配置文件:
server: port: 8081spring: kafka: # 生产者 producer: bootstrap-servers: x.x.x.x.:9092 # 消费者 consumer: enable-auto-commit: true # 指定消息被消费之后自动提交偏移量 group-id: mytest # 消费者组 auto-offset-reset: latest # 从最近的地方开始消费 bootstrap-servers: x.x.x.x:9092
生产者代码:
/** * 生产者 * 使用@EnableScheduling注解开启定时任务 */@Component@EnableSchedulingpublic class KafkaProducer { @Autowired private KafkaTemplate kafkaTemplate; /** * 定时任务 */ @Scheduled(cron = "0/5 * * * * ?") public void send(){ String message = UUID.randomUUID().toString(); ListenableFuture future = kafkaTemplate.send("my_topic