从零开始学Spring Boot系列-集成Kafka

本文详细介绍了如何在SpringBoot项目中集成Kafka,包括添加依赖、配置Kafka连接参数、创建生产者和消费者实例,以及创建一个控制台接口。通过这个过程,读者将学习到如何利用Kafka进行分布式实时数据处理。
摘要由CSDN通过智能技术生成

Spring Boot集成Kafka

  1. 添加依赖:在你的Spring Boot项目的build.gradle 文件中添加Kafka的依赖。
dependencies {
 implementation 'org.springframework.boot:spring-boot-starter-web'
 compileOnly 'org.projectlombok:lombok'
 annotationProcessor 'org.projectlombok:lombok'
 implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
 runtimeOnly 'mysql:mysql-connector-java:8.0.17'
 implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3'
 implementation 'org.springframework.boot:spring-boot-starter-data-redis'
 implementation 'org.apache.commons:commons-pool2'
 implementation 'org.springframework.kafka:spring-kafka'
}

  1. 配置Kafka:在application.properties或application.yml文件中配置Kafka的相关属性,如broker地址、端口、topic等。
spring.kafka.bootstrap-servers=localhost:9092  
spring.kafka.consumer.group-id=my-group  
spring.kafka.consumer.auto-offset-reset=earliest  
spring.kafka.template.default-topic=my-topic

  1. 创建生产者:使用KafkaTemplate发送消息到Kafka。
 package cn.daimajiangxin.springboot.learning.kafka;

 import jakarta.annotation.Resource;
 import org.springframework.kafka.core.KafkaTemplate;
 import org.springframework.stereotype.Service;

 @Service
 public class KafkaProducer {
     @Resource
     private KafkaTemplate<String, String> kafkaTemplate;

     public void sendMessage(String message) {
         kafkaTemplate.send("my-topic", message);
     }
 }

  1. 创建消费者:使用@KafkaListener注解监听Kafka中的消息。
package cn.daimajiangxin.springboot.learning.kafka;

import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Service;

@Service
public class KafkaConsumer {
    @KafkaListener(topics = "my-topic", groupId = "my-group")
    public void consume(String message) {
        System.out.println("Received message: " + message);
    }
}

  1. 创建控制器:KafkaController
 package cn.daimajiangxin.springboot.learning.controller;
 import cn.daimajiangxin.springboot.learning.kafka.KafkaProducer;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RestController;

 @RestController
     public class KafkaController {

     private final  KafkaProducer kafkaProducer;

         @Autowired
         public KafkaController(KafkaProducer kafkaProducer) {
             this.kafkaProducer = kafkaProducer;
         }

         @GetMapping("/kafka")
         public void kafka() {
             kafkaProducer.sendMessage("Hello World");
         }
     }


现在,你的Spring Boot应用已经集成了Kafka,你可以通过生产者发送消息,并通过消费者接收并处理这些消息了。
20240321131109
20240321131208

总结

以上就是关于从零开始学Spring Boot系列文章——集成Kafka的简介。Kafka作为一个强大的分布式流处理平台,与Spring Boot的集成可以极大地简化实时数据处理应用的开发。希望这篇文章能帮助你更好地理解Kafka及其在Spring Boot项目中的应用。

最后

关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。当然,这些内容我也全部整理在一份pdf文档内,分成了以下几大专题:

  • Java基础部分

  • 算法与编程

  • 数据库部分

  • 流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba)

这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。

作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。

构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。

作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值