springboot集成kafka

springboot集成kafka

  • [1. 添加 Maven 依赖](#1. 添加 Maven 依赖)
  • [2. 配置 Kafka](#2. 配置 Kafka)
  • [3. 创建 Kafka 生产者](#3. 创建 Kafka 生产者)
  • [4. 创建 Kafka 消费者](#4. 创建 Kafka 消费者)
  • [5. 运行和测试](#5. 运行和测试)

1. 添加 Maven 依赖

首先,在pom.xml 文件中添加 Spring Kafka 的依赖。

xml 复制代码
<dependencies>  
    <dependency>  
        <groupId>org.springframework.kafka</groupId>  
        <artifactId>spring-kafka</artifactId>  
        <version>版本号</version> 
    </dependency>  
</dependencies>

2. 配置 Kafka

在 application.properties 或 application.yml 中添加 Kafka 的配置信息。

java 复制代码
spring.kafka.bootstrap-servers=localhost:9092  
spring.kafka.consumer.group-id=myGroup  
spring.kafka.consumer.auto-offset-reset=earliest  
spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer  
spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer  
spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer  
spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer

3. 创建 Kafka 生产者

创建一个服务类来发送消息到 Kafka 主题。

java 复制代码
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.kafka.core.KafkaTemplate;  
import org.springframework.stereotype.Service;  
  
@Service  
public class KafkaProducerService {  
    @Autowired  
    private KafkaTemplate<String, String> kafkaTemplate;  
  
    public void sendMessage(String message) {  
        kafkaTemplate.send("myTopic", message);  
    }  
}

4. 创建 Kafka 消费者

创建一个类来监听 Kafka 主题并处理接收到的消息。

java 复制代码
import org.springframework.kafka.annotation.KafkaListener;  
import org.springframework.stereotype.Component;  
  
@Component  
public class KafkaConsumerService {  
  
    @KafkaListener(topics = "myTopic", groupId = "myGroup")  
    public void listen(String message) {  
        System.out.println("Received Message: " + message);  
    }  
}

5. 运行和测试

创建一个简单的 REST API 或使用 Spring Boot 的命令行运行器来测试 Kafka 的集成。

java 复制代码
import org.springframework.boot.CommandLineRunner;  
import org.springframework.boot.SpringApplication;  
import org.springframework.boot.autoconfigure.SpringBootApplication;  
import org.springframework.context.annotation.Bean;  
  
@SpringBootApplication  
public class KafkaApplication {  
  
    public static void main(String[] args) {  
        SpringApplication.run(KafkaApplication.class, args);  
    }  
  
    @Bean  
    public CommandLineRunner run(KafkaProducerService producer) {  
        return args -> {  
            producer.sendMessage("Hello Kafka!");  
        };  
    }  
}
相关推荐
也许明天y13 分钟前
LangChain4j + Spring Boot 多智能体协调架构原理深度解析
spring boot·后端·agent
阿丰资源1 小时前
基于Spring Boot的新闻推荐系统(源码+数据库+文档)
数据库·spring boot·后端
身如柳絮随风扬2 小时前
Spring Boot + Spring Cloud 集成 Elasticsearch:从零搭建企业级搜索服务
spring boot·elasticsearch·spring cloud
流觞 无依3 小时前
Spring Boot 未授权访问漏洞排查与修复指南
java·spring boot·后端
Java开发的小李3 小时前
SpringBoot 高流量高并发 基础全面讲解
java·spring boot·后端·性能优化
极创信息4 小时前
信创领域五种主流CPU架构(X86 / ARM / RISC-V / MIPS / LoongArch)
java·arm开发·数据库·spring boot·mysql·软件工程·risc-v
一个心烑4 小时前
Layui结合springboot读取返回值,前端展示简单示例
前端·spring boot·layui
郝开4 小时前
Spring Cloud Gateway 3.5.14 使用手册
java·数据库·spring boot·gateway
运维老司机5 小时前
Kafka 单节点部署(Docker Compose + 数据持久化)
分布式·docker·kafka
JAVA面经实录9175 小时前
如何选择适合项目的「限流 / 熔断 / 降级」方案
java·spring·kafka·sentinel·guava