RabbitMQ

RabbitMQ

持续更新中...

如何保证消息不丢失

  • 开启生产者确认机制,确保生产者的消息能到到队列,若报错则记录到日志里面
  • 开启持久化功能,确保未消费的消息不会丢失(交换机、队列、消息都要持久化)

如何解决重复消费问题

  • 消费者设置自动确认机制
  • redis分布式锁
  • 数据库锁

延迟队列的了解

延迟队列用死信交换机和TTL(消息存活时间实现的)

消息超时未消费就会变成死信,在RabbitMQ中如果消息成为死信,队列可以绑定一个死信交换机,在死信交换机上可以绑定其他队列,在我们发消息的时候可以按照需求指定TTL的时间,这样就实现了延迟队列的功能了。

大量消息堆积如何解决

  • 提高消费者消费能力,可以使用多线程
  • 增加消费者
  • 扩大队列容量,提高堆积上限
  • 使用惰性队列:
    • 接收到消息后直接存入磁盘而非内存
    • 消费者消费才把消息从磁盘加载到内存
    • 支持数百万的消息存储
相关推荐
Albert Edison16 小时前
【RabbitMQ】SpringBoot 整合 RabbitMQ
spring boot·rabbitmq·java-rabbitmq
IT策士2 天前
Python 中间件系列:消息队列 RabbitMQ 操作
python·中间件·rabbitmq
逆境不可逃3 天前
黑马 RabbitMq 高级篇 学习记录
分布式·学习·rabbitmq
学Linux的语莫3 天前
消息队列 MQ 怎么选?RabbitMQ实操
分布式·rabbitmq
逆境不可逃4 天前
黑马 RabbitMq 基础篇 学习记录
学习·rabbitmq·ruby
过期动态5 天前
【RabbitMQ基础篇】RabbitMQ从入门到实战
java·jvm·数据库·分布式·spring·rabbitmq·intellij-idea
weixin_456723166 天前
Java项目的rabbitmq配置vhost
java·rabbitmq·java-rabbitmq
铁皮哥6 天前
【后端开发】RabbitMQ、RocketMQ、Kafka 怎么选?我从业务场景重新梳理了一遍
java·linux·数据库·分布式·kafka·rabbitmq·rocketmq
宇之广曜6 天前
从 MQ 到 Celery:把异步任务、状态表、重试补偿和 Outbox 一次讲清楚
kafka·rabbitmq
何中应7 天前
RabbitMQ集群搭建
分布式·rabbitmq