当前位置: 首页 > news >正文

Spring Boot 中集成 Kafka 并实现延迟消息队列

在 Spring Boot 中集成 Kafka 并实现延迟消息队列,需要结合 Kafka 的基础功能与自定义逻辑来处理延迟投递。以下是完整的实现步骤和示例代码,涵盖配置、生产者、消费者、延迟队列设计和消息重试机制。


一、环境准备与依赖配置

  1. 添加依赖
    pom.xml 中添加 Spring Kafka 依赖:

    <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId>
    </dependency>
    
  2. Kafka 配置
    application.yml 中配置生产者和消费者:

    spring:kafka:bootstrap-servers: localhost:9092producer:key-serializer: org.apache.kafka.common.serialization.StringSerializervalue-serializer: org.apache.kafka.common.serialization.StringSerializeracks: all  # 确保消息持久化retries: 3  # 生产者重试次数consumer:group-id: delay-groupauto-offset-reset: earliestenable-auto-commit: false  # 手动提交偏移量
    

二、延迟队列设计

Kafka 本身不支持延迟消息,需通过以下方案实现:

  1. 多级重试主题
    创建不同延迟时间的主题(如 order.retry.1m, order.retry.5m),消息根据重试次数发送到对应主题。
  2. Redis 存储延迟任务
    使用 Redis 的 ZSET 存储待重试消息,按执行时间排序,定时任务轮询并重新投递消息。

三、核心代码实现

1. 生产者配置与消息发送
@Service
public class KafkaProducer {private final KafkaTemplate<String, String> kafkaTemplate;@Autowiredpublic KafkaProducer(KafkaTemplate
http://www.xdnf.cn/news/224767.html

相关文章:

  • 腾讯云服务器性能提升全栈指南(2025版)
  • C# 类成员的访问:内部与外部
  • 练习001
  • Java进阶--设计模式
  • 汽车OTA在线升级法规分析
  • 搭建基于 ChatGPT 的问答系统
  • Linux Quota 显示空间占用远大于实际数据的问题排查记录
  • Java写数据结构:队列
  • 基于大模型的膀胱肿瘤全周期诊疗方案研究报告
  • 【KWDB 创作者计划】_KWDB能帮我的项目解决什么问题
  • Golang - 实现文件管理服务器
  • scGPT方法解读
  • 突发-2小时前DeepSeek发布了新模型-不是R2
  • 中小企业如何借助智能海关系统降低跨境运输成本?
  • day006-实战练习题-参考答案
  • 基于 IAR Embedded Workbench 的自研 MCU 芯片软件函数与变量内存布局优化精控方法
  • LeetCode 2905 找出满足差值条件的下标II 题解
  • AI驱动的决策智能系统(AIDP)和自然语言交互式分析
  • ArcGIS+GPT:多领域地理分析与决策新方案
  • 第十一节:Shell脚本编程
  • 软件架构选型之“如何选”
  • Walrus 与 Pudgy Penguins 达成合作,为 Web3 头部 IP 引入去中心化存储
  • 米壳AI:跨境电商图片翻译的“隐形革命”:当AI技术遇上全球化生意
  • Azure Monitor 实战指南:全方位监控应用与基础设施
  • 零基础学指针2
  • 蓝桥杯赛后总结
  • Transformer:颠覆深度学习的架构革命与技术演进
  • HTTP/HTTPS
  • shell(5)
  • 2025年真实面试问题汇总(一)