八、SpringBoot集成Kafka

目录

    • 一、添加依赖
    • [二、SpringBoot 生产者](#二、SpringBoot 生产者)
    • [三、SpringBoot 消费者](#三、SpringBoot 消费者)

一、添加依赖

java 复制代码
<dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.kafka</groupId>
            <artifactId>spring-kafka-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

二、SpringBoot 生产者

1、修改 SpringBoot 核心配置文件 application.propeties, 添加生产者相关信息

properties 复制代码
spring.application.name=atguigu_springboot_kafka
#指定kafka集群地址
spring.kafka.bootstrap-servers=192.168.239.11:9092,192.168.239.12:9092

#key value序列化
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer

2、创建 controller 从浏览器接收数据, 并写入指定的 topic

java 复制代码
@RestController
public class ProducerController {

    @Autowired
    KafkaTemplate<String, String> kafka;

    @RequestMapping("/atguigu")
    public String data(String msg){
        // 通过kafka发送出去
        kafka.send("first", msg);

        return "ok";
    }
}

三、SpringBoot 消费者

1、修改 SpringBoot 核心配置文件 application.propeti

properties 复制代码
#指定kafka集群地址
spring.kafka.bootstrap-servers=192.168.239.11:9092,192.168.239.12:9092

#key value序列化
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer

# key value 反序列化器
spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer

#配置消费者组
spring.kafka.consumer.group-id=atguigu

2、创建类消费 Kafka 中指定 topic 的数据

java 复制代码
@Configuration
public class KafkaConsumer {

    @KafkaListener(topics = "first")
    public void consumerTopic(String msg){
        System.out.println("收到消息:" + msg);
    }
}
相关推荐
Devin~Y12 小时前
大厂Java面试实录:Spring Boot/Cloud + Redis + Kafka + JVM + RAG(Spring AI)三轮追问(小Y翻车版)
java·jvm·spring boot·redis·spring cloud·kafka·mybatis
heimeiyingwang1 天前
【架构实战】Kafka深度实战:从消息队列到流处理平台
架构·kafka·linq
青云计划2 天前
kafka从入门到精通
kafka
倒流时光三十年2 天前
第9篇 消息不丢:三端协同防丢失方案
spring boot·kafka
明明跟你说过2 天前
Kafka 与 Elasticsearch 的集成应用案例深度解析
大数据·elk·elasticsearch·kafka·big data·bigdata
lifewange2 天前
Nginx + Kafka 可编程精细控制 完整版(可直接落地运行)
运维·nginx·kafka
数据库小学妹2 天前
CDC实时数据同步:让数据库变更秒级流向大数据平台!
大数据·数据库·mysql·kafka·dba
虎头金猫2 天前
Beszel 轻量服务器监控:多台服务器状态统一看,搭起来比 Prometheus 省事太多
linux·运维·服务器·分布式·kafka·开源·prometheus
liux35282 天前
Kafka 4.1.1 生产环境调优与最佳实践指南
数据库·分布式·kafka
Devin~Y2 天前
大厂Java面试实录:Spring Boot + JVM + Redis/Kafka + 微服务治理 + Spring AI/RAG 一条龙
java·jvm·spring boot·redis·spring cloud·kafka·openfeign