-
Notifications
You must be signed in to change notification settings - Fork 590
Open
Labels
featureNew feature or requestNew feature or request
Description
issue类型
- 功能优化
当前问题
1. 原生 Client 维护成本高
- 需手动创建管理连接池
- 消费者使用
while(true)轮询 - 无多消费者并发能力
2. 缺少消息可靠性保障
- 生产端:消息发送后无回调机制,无法确认消息是否成功到达 Exchange 或 Queue
- 消费端:缺乏死信机制
3. 其他问题
- 无消费幂等性,可能重复消费
解决方案
1. 引入Spring AMQP 替代原生 RabbitMQ Client
- 利用 Spring Boot 自动配置管理 ConnectionFactory 和 CachingConnectionFactory
- 使用 @RabbitListener 注解驱动,替代轮询拉取模式,实现推模式消费
- 配置并发消费
2. 配置死信队列和失败补偿
- 配置 Publisher Confirm 和 Publisher Return,并记录 log.error
- 配置死信队列
3. 使用锁
- 在消费端利用 Redis (SETNX + TTL) 记录 Message ID 或业务 Key,防止重复消费
详细信息已分享在知识星球🌏:https://articles.zsxq.com/id_6fu347bbecgh.html
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
featureNew feature or requestNew feature or request