【RabbitMQ工作原理相关】

news2024/9/20 0:19:58

RabbitMQ如何保证消息不丢失

  1. 开启生产者确认机制,确保生产者的消息能到达队列
  2. 开启持久化功能,确保消息未消费前在队列中不会丢失
  3. 开启消费者确认机制为auto,由spring确认消息处理成功后完成ack
  4. 开启消费者失败重试机制,多次重试失败后将消息投递到异常交换机,交由人工处理

RabbitMQ生产者确认机制

在这里插入图片描述

RabbitMQ消费者确认机制

在这里插入图片描述

RabbitMQ消息持久化

在这里插入图片描述

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

产生原因:

  • 网络抖动
  • 消费者挂了
    在这里插入图片描述
    解决方案:
  • 每条消息设置一个唯一的标识id
  • 幂等方案:【分布式锁、数据库锁(悲观锁、乐观锁)】

RabbitMQ 延迟队列如何实现

  • 使用场景:

    超时订单、限时优惠、定时发布…

  • 解决方案

    死信交换机+TTL(消息存活时间)

  • 具体实施(延迟队列插件实现延迟队列DelayExchange)

    1. 声明一个交换机,添加delayed属性为true
    2. 发送消息时,添加x-delay头,值为超时时间

在这里插入图片描述
在这里插入图片描述

RabbitMQ消息堆积如何处理

  • 产生原因

    当生产者发送消息的速度超过了消费者处理消息的速度,就会导致队列中的消息堆积,直到队列
    存储消息达到上限,之后发送的消息就会成为死信,可能会被丢弃,这就是消息堆积问题

  • 解决方案
    1. 增加更多消费者,提高消费速度
    2. 在消费者内开启线程池加快消息处理速度
    3. 扩大队列容积,提高堆积上限,采用惰性队列
    - 在声明队列的时候可以设置属性x-queue-mode为lazy,即为惰性队列
    - 基于磁盘存储,消息上限高
    - 性能比较稳定,但基于磁盘存储,受限于磁盘IO,时效性会降低

RabbitMQ高可用机制

  • 在生产环境下,我们当时采用的镜像模式搭建的集群,共有3个节点
  • 镜像队列结构是一主多从(从就是镜像),所有操作都是主节点完成,然后同步给镜像节点
  • 主宕机后,镜像节点会替代成新的主(如果在主从同步完成前,主就已经宕机,可能出现数据丢失)

RabbitMQ 避免数据丢失的措施

我们可以采用仲裁队列,与镜像队列一样,都是主从模式,支持主从数据同步,主从同步基于Raft协议,强一致。并且使用起来也非常简单,不需要额外的配置,在声明队列的时候只要指定这个是中裁队列即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2083290.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linux Debian12安装Peek录屏软件,录制gif动态图

一、Peek安装 在Debian 12 (codenamed “Bookworm”) 上安装 Peek 录屏软件,可以通过以下步骤进行: 1.打开终端。 2.更新系统的包索引: sudo apt update3.安装 Peek 的依赖项: sudo apt install peek如果你遇到问题&#xff…

【大模型LLMs】文本分块Chunking调研LangChain实战

【大模型LLMs】文本分块Chunking调研&LangChain实战 Chunking策略类型1. 基于规则的文本分块2. 基于语义Embedding分块3. 基于端到端模型的分块4. 基于大模型的分块 Chunking工具使用(LangChain)1. 固定大小分块(字符&token&#xff…

IC-Light还原细节的节点 DetailTransfer使用时报错-comfyui

🎈问题描述 今天在调试一个工作流节点的时候,遇到一个问题: Error occurred when executing DetailTransfer: The size of tensor a (848) must match the size of tensor b (853) at non-singleton dimension 2 File "F:\ComfyUI-aki\…

Volvo EDI 项目测试流程详解

近期知行帮助多个供应商成功对接Volvo EDI,这些案例中,供应商收到Volvo发来的EDI需求是基本一致的: 传输协议选择OFTP报文标准选择EDIFACT业务单据包括:DELFOR交付预测以及DESADV发货通知 扩展阅读:汽车EDI&#xff…

车规级CAN总线外围电路设计方案

目录 1、共模电感 1.1、电感值 1.2、泄漏电感 1.3、直流电阻 1.4、CMC的模式转换特性 2、终端分立电阻 3、总线电容 4、ESD保护二极管 在汽车领域,电磁兼容性(EMC)问题一直备受瞩目。相较于传统汽车,新能源汽车的EMC挑战更…

如何使用ssm实现社区智慧养老监护管理平台+vue

TOC ssm270社区智慧养老监护管理平台vue 系统概述 1.1 研究背景 智慧养老是面向居家老人、社区及养老机构的传感网系统与信息平台,并在此基础上提供实时、快捷、高效、低成本的,物联化、互联化、智能化的养老服务。 随着科技进步,新型养…

无法启动此程序,因为计算机中丢失dll,整理了7种解决方法!

当电脑出现“无法启动此程序,因为计算机中丢失dll”的错误弹窗时,这通常意味着系统中的DLL文件出现了缺失或错误。DLL文件是动态链接库文件,它们在软件运行中起着至关重要的作用。 造成dll文件缺失和错误的原因有很多,大部分问题都…

git clone 别人的项目上传到自己的Gitee或者github仓库

git clone别人的项目 git clone https://github.com/wohuweixiya/yft-design.git 进入该项目内,删除原有的.git信息 rm -r .git 初始化.git git init 将本地代码添加到仓库 git add . git commit -m "提交仓库说明" Github上新建一个和这个clone下来…

【快速选择算法】解决TopK问题中前K小的数字问题

目录 1.前言2.题目简介3.求解思路4.示例代码 1.前言 在一个数组中找到这个数组前K小的数字有三种方式: 排序 O(N*logN)堆排序:建立一个k个大小的大堆(如果是找前K大的数字的话用小堆) O(N*logK)快速选择算法:原地交换数字,使得该…

数据结构---单链表(常见的复杂操作)

目录 一、单链表 1.1.查找中间元素 1.2.查找倒数第K个节点 1.3.链表倒置 1.4.冒泡排序 1.5.选择排序 1.6.环,确认有环单链表的环入口和环大小 二、总结 一、单链表 1.1.查找中间元素 定义两个指针,分别指向第一个元素,第一个指针每次向后…

开源的工作流系统突出优点总结

当前,想要实现高效率的办公,可以一起来了解低代码技术平台、开源的工作流系统的相关特点和功能优势。作为较受职场喜爱的平台产品,低代码技术平台拥有可视化才做界面、灵活、好维护操作等多个优势特点,在推动企业流程化办公的过程…

在线生成书法字帖,想练习什么字就练习什么字

有没有想练习一个字的时候发现找不到字帖的情况,现在推荐一款在线生成字帖的网站 可选择对应格子类型,生成你想练习的字 在线生成字帖

【简历】25届北京某211JAVA简历:外卖项目要点像玩一样

注:为保证用户信息安全,姓名和学校等信息已经进行同层次变更,内容部分细节也进行了部分隐藏 简历说明 这是一份北京某211大学的java简历。上来第一要点还是要先确定求职层次,那211同学就不要想了,就一个目标&#xf…

mysql 死锁 锁表的解决方法

查看那个表锁了 SHOW OPEN TABLES where In_use > 0; show processlist SELECT * FROM information_schema.INNODB_TRX; 查看锁的进程 kill 掉进程id (trx_mysql_thread_id)

CAD中命令和系统变量

屏幕去除菜单全屏显示: ThisDrawing.SendCommand ("CLEANSCREENON ") 恢复原始:ThisDrawing.SendCommand ("CLEANSCREENOFF ") CAD中系统变量决定图形的基本设置。 第一个系统变量:uscicon vba代码如下: …

Flink CDC读取Mysql时,Decimal类型数据异常,变成了字符串(源码解析及解决方案)

1. 问题说明 使用Flink CDC 读取mysql数据时,当表字段为decimal时,读取的数据变成了字符串。 如下示例: 环境: Flink 1.18.0 Flink CDC 3.1.1 mysql 8 mysql的数据如下: 使用Flink CDC读取后的数据如下: 为了方便看,复制出来就是: {“id”:1,“price”:“AZA=”,…

时尚新潮流来袭!Kolors 一键试衣,畅享轻松购物

时尚新潮流来袭!Kolors 一键试衣,畅享轻松购物 解决他们的烦恼话不多说,三键拿下Kolors 优点小结 时尚新潮流:虚拟试衣,开启便捷购物之旅🎀 🌟 你还在为网购试衣服不合适而烦恼吗?现…

OSI和TCP/IP参考模型、协议与端口、DNS解析类型、数据封装

目录 1.OSI和TCP/IP参考模型 1.1 为什么要进行网络分层? 1.2 TCP/IP和OSI参考模型 1.3 TCP/IP参考模型对应协议 2.对应协议和端口 3.基于IP的封装 4.DNS解析类型 5.数据封装与解封过程分析 5.1 封装 1.OSI和TCP/IP参考模型 1.1 为什么要进行网络分层&am…

人工智能如何将人机交互提升到新水平

随着人工智能模型在语音识别和合成、文本处理和多模态性方面的卓越表现,终极语音用户界面可能很快就会无处不在。欢迎来到雲闪世界。 添加图片注释,不超过 140 字(可选) 那是一个典型的星期五下午,我们刚刚结束了一个…

JNPF V5.0震撼升级,工作流开发全面重塑!

随着企业数字化转型的不断深入,低代码开发平台因其高效、便捷的特性,逐渐成为企业信息化建设的宠儿。作为低代码领域的佼佼者,JNPF低代码开发平台在V5.0版本中,对工作流开发进行了全面的重塑,旨在为企业提供更加灵活、…