Spring Boot 集成 Kafka 消息发送方案

发布于:2025-03-21 ⋅ 阅读:(32) ⋅ 点赞:(0)

一、引言

在 Spring Boot 项目中,Kafka 是常用的消息队列,可实现高效的消息传递。本文介绍三种在 Spring Boot 中使用 Kafka 发送消息的方式,分析各自优缺点,并给出对应的 pom.xml 依赖。

二、依赖引入

在 pom.xml 中添加以下依赖:

<dependencies>
    <!-- Spring Boot Starter for Kafka -->
    <dependency>
        <groupId>org.springframework.kafka</groupId>
        <artifactId>spring-kafka</artifactId>
        <version>3.0.8</version>
    </dependency>
    <!-- JSON 处理库,这里使用的是 org.json -->
    <dependency>
        <groupId>org.json</groupId>
        <artifactId>json</artifactId>
        <version>20231013</version>
    </dependency>
</dependencies>

若要进行测试,可添加 spring-kafka-test 依赖:

<dependency>
    <groupId>org.springframework.kafka</groupId>
    <artifactId>spring-kafka-test</artifactId>
    <scope>test</scope>
</dependency>

三、三种消息发送方式

(一)自定义 KafkaMessageSender 类

1. 代码示例
import org.apache.kafka.clients.producer.*;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Properties;

class TsSign {
   
    private int id;
    private String deviceId;

    public TsSign(int id, String deviceId) {
   
        this.id = id;
        this.deviceId = deviceId;
    }
}

class TsSignSerializer {
   
    // 序列化逻辑
}

public class KafkaMessageSender {
   
    private static final Logger log = LoggerFactory.getLogger(KafkaMessageSender.class);
    private final Producer<