当前位置: 首页 > news >正文

RabbitMQ面经 手敲浓缩版

保证可靠性

生产者

本地事务完成和消息发送同时完成 通过事务消息完成

重写confirm在里面做逻辑处理 确保发送成功(不成功就放入到重试队列)

MQ

打开持久化确保消息不会丢失

消费者

改成手动回应

不重复消费

生产者

保证不重复发送消息

消费者

确保它不重复消费 把消费过的消息存入redis

(把消息中的多个字段进行组合加密得到字符串,如果能在缓存中取到值表示已消费)

顺序消费

传统做法:用单一的消费者,就能确保消息按照顺序消费

缺点:并发度较高的时候,效率会很低

(顺序消费和多线程本身就是矛盾的关系,并发多线程的意义就是因为不在乎顺序,所以才变成多线程)

解决方法:将需要保证顺序的消息放在一块,进行分组然后由单一的消费者消费

将需要保证顺序的放在一组,然后用同一个work进行处理

延迟消息

死信

缺点:需要过期时间一致

如果时间不一致 (例如: 消息A 5分钟过期 消息B 10分钟过期)

另一种方式 :本地库存然后通过轮询重新发送一次信息

缺点:性能上有损耗 但是更加灵活

消息堆积

原因

消费者消费的慢

消费出现问题导致nack队列太多

解决

增加消费者

消费过程改用异步或者多线程

‘将当前业务的topic改成新的topic,然后新增多几个消费者在这新的topic上,保证后续业务的正常执行,前面堆积的这些单独开一些消费者在这里消费

http://www.lryc.cn/news/333435.html

相关文章:

  • 解锁金融数据中心场景,实现国产化AD替代,宁盾身份域管为信创电脑、应用提供统一管理
  • Django的js文件没有响应(DOMContentLoaded)
  • 滑动窗口代码模板
  • SpringBoot实现邮箱验证
  • Mac安装Docker提示Another application changed your Desktop configuration解决方案
  • 5分钟安装docker和docker compose环境
  • leetcode热题100.跳跃游戏2
  • 【前端】CSS(引入方式+选择器+常用元素属性+盒模型+弹性布局)
  • 迷茫下是自我提升
  • 用vscode仿制小米官网
  • 【Java+Springboot】------ 通过JDBC+GetMapping方法进行数据select查询、多种方式传参、最简单的基本示例!
  • 基于单片机光伏太阳能跟踪系统设计
  • Stable Diffusion 本地化部署
  • C++ Algorithm 常用算法
  • 线程安全--深入探究线程等待机制和死锁问题
  • 量子计算获重大突破!微软和Quantinuum将量子计算错误率降低800倍,网友:AI算力的希望
  • WordPress 6.5 “里贾纳”已经发布
  • 甲方安全建设之日志采集实操干货
  • dm8 开启归档模式
  • “AI复活”背后的数字永生:被期待成为下一个电商,培育市场认知和用户心智还需时间
  • 基于单片机钢琴电子节拍器系统设计
  • 我的创作纪念日(year Ⅱ)
  • 应急响应实战笔记05Linux实战篇(1)
  • 重装系统之后,电脑连网卡都没反应怎么办?
  • 【三十五】【算法分析与设计】综合练习(2),22。 括号生成,77。 组合,494。 目标和,模拟树递归,临时变量自动维护树定义,递归回溯,非树结构模拟树
  • QT智能指针
  • C++笔记之pkg-config详解,以及g++、gcc编译时使用pkg-config
  • [Apple Vision Pro]开源项目 Beautiful Things App Template
  • Qt Remote Objects (QtRO) 笔记
  • Unity类银河恶魔城学习记录12-6.5 p128.5 Create item by Craft源代码