rabbitMQ

可靠性

rabbit提供了生产者确认机制,消息发送到队列以后,会给生产者返回一个回执(publish confim ack),表示消息是否处理成功

持久化处理,把消息,队列,交换机持久化

消费者取消自动回应ack,消费完在发送ack

RabbitMQ消息的重复消费问题如何解决?

我们遇到过消息重复消费的问题,当时处理的支付订单,给他设置了一个全局唯一id,再处理消息时先去数据库中查一下id是否存在,若不存在则处理消息,若存在则忽略,避免重复消费。

那你还知道其他的解决方案吗?

使用Redis分布式锁或数据库锁来确保操作的幂等性。

了解延迟队列?

延迟队列,就是死信队列中,TTL消息过期的一种,死信即不被消费的信息

RabbitMQ实现延迟队列的方法

利用消息的TTL(Time-To-Live)和死信队列(DLQ)组合

原理:为队列或消息设置TTL,当消息在队列中存活时间超过TTL值,就会变成死信。将该队列与死信交换机绑定,死信交换机再将死信路由到另一个队列(即延迟队列),消费者从这个延迟队列中获取消息进行处理。

为队列或消息设置TTL,当消息变为死信时,路由到延迟队列上消费者再从延迟队列进行处理

RabbitMQ的高可用机制了解吗?

我们项目在生产环境使用RabbitMQ集群,采用镜像队列模式,一主多从结构。

每个节点都记录了队列完整的数据,当主节点宕机时,镜像节点升为主节点保证了高可用性

相关推荐
风流 少年14 分钟前
Spring AI 2.0:Flux
java·人工智能·spring
m0_5474866617 分钟前
《面向对象与Java程序设计》全套PPT课件2026
java·开发语言
jason成都29 分钟前
ignav-next|Java 层封装 GNSS/INS 组合导航框架,隔离 RTKLIB 与 INS 内核,双模块独立演进、最小侵入
java·开发语言
抓不住时间的沙30 分钟前
butterfly主题美化,打造属于自己的个性博客
java·开发语言·前端·javascript·node.js·github
Zane199440 分钟前
从一个发短信的类到多态调用:封装、继承、多态到底是怎么长出来的
java·后端
MarkHD44 分钟前
Stable Diffusion入门第19-20天:保存与分享你的工作流——第一阶段收官,从“能用”到“可复用”
java·开发语言·stable diffusion
爱敲键盘的猴子1 小时前
Spring MVC 详解(一):全注解开发与请求响应处理
java·spring·mvc
counting money1 小时前
SpringBoot 项目创建(IDEA不全,还需要修改)
java·spring boot·spring·maven
Dr.kangder1 小时前
嵌入式面试总结(二十二)——指针
java·面试·职场和发展·架构·嵌入式
MacroZheng1 小时前
几行代码给项目集成AI功能,Spring AI 2.0太香了!
java·人工智能·spring boot