Kafka延迟队列实现分级重试

技术方案

方案背景

Kafka队列消息消费处理过程中,发生处理异常,需要实现重试机制,并基于重试次数实现不同延迟时间重试方案。

方案介绍

通过实现Kafka延迟队列来实现消息重试机制。

目标:

  1. 支持所有业务场景的延迟重试
  2. 支持多级别延迟重试
  3. 保证消息 最少消费一次

核心内容:

  1. 延迟队列,Kafka本身不支持延迟队列机制,这里我们通过定义多种Topic来扩展实现。例如Topic-1、Topic-2、Topic-3 分别代表延迟1分钟、2分钟、3分钟的队列。

    a. 每种延迟级别独立一个Topic

    b. 分区数建议与延迟调度服务部署量一致,以便于调度服务简化处理。建议值 2

  2. 延迟队列消费调度服务,负责从延迟队列拉取消息。

    a. 判断消息是否达到延迟时间,

    i. 若未达到,则delay 延迟时间-当前时间;

    ii. 若已达到,则将消息转发至对应的业务消息队列。

    b. 集群部署数量 建议值 2,消费部署数与分区数一致,以保证数据消费顺序及处理及时性

    c. 若重试次数已达到最大值,则丢失数据,并发送异常警报(钉钉)

    d. 考虑延迟队列修改offset,重新处理消息机制

  3. 业务消费服务改造,

    a. 数据处理异常时,组装延迟重试消息,将异常数据推送至延迟队列消息。

    b. 鉴于当前业务消费 BulkCopy 批量处理逻辑

技术架构

架构图

Topic-1、Topic-2、Topic-3 分别代表延迟1分钟、2分钟、3分钟的队列

核心流程

相关推荐
程序猿阿伟6 小时前
《分布式追踪Span-业务标识融合:端到端业务可观测手册》
分布式
爆米花byh6 小时前
在RockyLinux9环境的Kafka4.1.1单机版安装(无ZK依赖)
中间件·kafka
yumgpkpm7 小时前
预测:2026年大数据软件+AI大模型的发展趋势
大数据·人工智能·算法·zookeeper·kafka·开源·cloudera
消失的旧时光-19438 小时前
第十六课实战:分布式锁与限流设计 —— 从原理到可跑 Demo
redis·分布式·缓存
若水不如远方8 小时前
分布式一致性(三):共识的黎明——Quorum 机制与 Basic Paxos
分布式·后端·算法
DemonAvenger8 小时前
Kafka消费者深度剖析:消费组与再平衡原理
性能优化·kafka·消息队列
会算数的⑨9 小时前
Kafka知识点问题驱动式的回顾与复习——(一)
分布式·后端·中间件·kafka
张小凡vip9 小时前
Kafka--使用 Kafka Connect 导入/导出数据
分布式·kafka
回忆是昨天里的海9 小时前
kafka概述
分布式·kafka
知识即是力量ol9 小时前
初识 Kafka(一):分布式流平台的定义、核心优势与架构全景
java·分布式·kafka·消息队列