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!");  
        };  
    }  
}
相关推荐
csdn_aspnet25 分钟前
C# list集合 多属性排序
c#·list·linq·排序
我登哥MVP1 小时前
Spring Boot 从“会用”到“精通”:参数解析原理
java·spring boot·后端·spring·servlet·maven·intellij-idea
他们叫我阿冠3 小时前
Kafka的基本了解
分布式·kafka
小江的记录本3 小时前
【Spring全家桶】Spring Cloud 2023.0.x:微服务核心理论、CAP/BASE定理(附《思维导图》+《面试高频考点清单》)
java·spring boot·后端·spring·spring cloud·微服务·面试
我登哥MVP3 小时前
Spring Boot 从“会用”到“精通”:Model-Map原理
java·spring boot·后端·spring·servlet·maven·mybatis
鱼鳞_4 小时前
苍穹外卖-Day12(数据统计)
java·spring boot
心之伊始4 小时前
Java 后端 AI 应用网关实战:多模型路由、Fallback、超时和可观测性设计
java·spring boot·大模型·架构设计·ai网关
汪小哥4 小时前
kafka 初识
分布式·kafka
RuoyiOffice5 小时前
2026 企业定制开发选型:从零开发、低代码、SaaS 与 RuoYi Office 怎么选?
spring boot·uni-app·开源·saas·oa·定制化·ruoyioffice
可乐ea5 小时前
【知识获取与分享社区项目 | 项目日记第 24 天】终章总结:从认证、发布、计数、Feed、搜索到 RAG:完整复盘一个知识社区后端系统
java·spring boot·redis·mysql·elasticsearch·ai·kafka