RabbitMQ

RabbitMQ

持续更新中...

如何保证消息不丢失

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

如何解决重复消费问题

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

延迟队列的了解

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

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

大量消息堆积如何解决

  • 提高消费者消费能力,可以使用多线程
  • 增加消费者
  • 扩大队列容量,提高堆积上限
  • 使用惰性队列:
    • 接收到消息后直接存入磁盘而非内存
    • 消费者消费才把消息从磁盘加载到内存
    • 支持数百万的消息存储
相关推荐
2501_941143321 小时前
微服务架构与服务网格在高并发互联网系统中的优化与工程实践经验分享
rabbitmq
2501_941871452 小时前
C++结合Redis与WebSocket构建高并发实时在线游戏服务设计与实战分享:成都多人竞技游戏架构优化经验
rabbitmq
2501_941870566 小时前
多语言微服务架构下的分布式事务管理与最终一致性实践
rabbitmq
2501_941878746 小时前
智能推荐系统与多语言微服务实现:Python、Java、C++与Go全栈开发实战
rabbitmq
2501_941809148 小时前
Python在高并发互联网系统开发中的架构设计与性能优化全流程实践分享
rabbitmq
2501_941145859 小时前
基于 Node.js 与 NestJS 构建高并发微服务与实时 API 系统实践分享
rabbitmq
2501_941147119 小时前
Python大数据处理实战:异步IO与协程高效数据解析代码解析
rabbitmq
2501_9418798110 小时前
多语言微服务架构下的微服务灰度发布与蓝绿部署实践
rabbitmq
2501_9418846112 小时前
能城市管理系统开发与多语言微服务实践:Python、Java、C++与Go全栈实现解析
rabbitmq
2501_9418779813 小时前
Python在微服务高并发异步分布式配置中心与动态参数管理架构中的实践
rabbitmq