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

RabbitMQ面经 手打浓缩版

保证可靠性

生产者

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

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

MQ

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

消费者

改成手动回应

不重复消费

生产者

保证不重复发送消息

消费者

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

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

顺序消费

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

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

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

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

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

延迟消息

死信

缺点:需要过期时间一致

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

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

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

消息堆积

原因

消费者消费的慢

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

解决

增加消费者

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

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

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

相关文章:

  • JavaScript引用数据类型
  • Mac m1 Flink的HelloWorld
  • 3.1 Python变量的定义和使用
  • OceanBase中左外连接和反连接的经验分享
  • 如何提升公众号搜索量?分享内部运营的5步优化技术!
  • 【2024】根据系统平均负载情况排查隐患
  • 分类任务中的评估指标:Accuracy、Precision、Recall、F1
  • android 音视频基础知识--个人笔记
  • 信息工程大学第五届超越杯程序设计竞赛(同步赛)题解
  • Python:文件读写
  • 10.windows ubuntu 组装软件:spades,megahit
  • K8S之Secret的介绍和使用
  • git下载安装教程
  • 《剑指 Offer》专项突破版 - 面试题 98、99 和 100 : 和动态规划相关的矩阵路径问题(C++ 实现)
  • KY145 EXCEL排序(用Java实现)
  • 属性选择器
  • 软考 - 系统架构设计师 - 关系模型的完整性规则
  • 写了几个难一点的sql
  • 【JDK常用的API】包装类
  • Android Q(10)黑暗模式适配的实现
  • 【git】git使用手册
  • unity中判断方向 用 KeyVertical ,KeyHorizontal 判断ui物体的 方向
  • 前端a4纸尺寸转像素尺寸
  • Android 中 调试和减少内存错误
  • 证券市场概述
  • 什么是数据结构
  • 基于springboot+vue实现的学校田径运动会管理系统
  • HarmonyOS 应用开发之FA模型绑定Stage模型ServiceExtensionAbility
  • Java 中的单例模式
  • 鸿蒙OS开发实例:【ArkTS类库多线程I/O密集型任务开发】