RabbitMQ流控-磁盘控制

2024-01-23 08:18
文章标签 控制 rabbitmq 磁盘 流控

本文主要是介绍RabbitMQ流控-磁盘控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

当磁盘空间低于配置(disk_free_limit)的限制时(默认disk_free_limit.absolute=50MB),将触发警报,并阻塞所有生产者。目的是避免填充整个磁盘,否则将导致节点上的所有写操作失败,并可能导致RabbitMQ终止。为了减少磁盘被填满的风险,所有正在传入的消息都将被阻塞。在内存压力下,非持久化的暂态消息仍将page到磁盘,并将耗尽已经有限的磁盘空间。如果磁盘警报阈值设置得太低,并且消息被快速换出(到磁盘),则可能在磁盘空间检查期间耗尽磁盘空间并崩溃RabbitMQ(间隔至少10秒)。更保守的方法是将磁盘限制阈值设置为与系统上安装的内存数量相同(参见下面的配置)。

如果空闲磁盘空间低于配置的阈值,将触发警报。将至少每10秒监视代理数据库使用的驱动器或分区的空闲空间,以确定是否应该发出或清除磁盘警报。一旦代理启动,将立即启动监控,导致代理日志文件中出现一个条目:

=INFO REPORT==== 23-Jun-2012::14:52:41 ===
Disk free limit set to 953MB

在不被认可的平台上,监控功能将会被禁用,从而导致以下输入:

=WARNING REPORT==== 23-Jun-2012::15:45:29 ===
Disabling disk free space monitoring

在集群中运行RabbitMQ时,磁盘报警是集群范围的;如果一个节点低于限制,那么所有节点都将阻塞传入的消息。

RabbitMQ定期检查空闲磁盘空间的数量。检查磁盘空间的频率与最后一次检查时的空间数量有关(以确保在磁盘空间耗尽时及时发出磁盘警报)。通常每10秒检查一次磁盘空间,但是随着限制的接近,频率会增加。当非常接近极限时,RabbitMQ将每秒检查10次。这可能会对系统负载产生一些影响。

当空闲磁盘空间低于配置的限制时,RabbitMQ将阻塞消息生产者并阻止基于内存的消息page到磁盘。这将减少磁盘空间耗尽导致崩溃的可能性,但不会完全消除它。特别是,如果正在快速换出(page)消息,可能会耗尽磁盘空间并在两次运行磁盘空间检测之间崩溃。更保守的方法是将限制设置为与系统上安装的内存数量相同(参见下面的配置部分)。

Configuring the Disk Free Space Limit

磁盘空闲空间限制使用参数disk_free_limit设置。默认情况下,数据库分区上需要50MB的空闲空间(关于默认数据库位置,请参阅http://www.rabbitmq.com/relocate.html的描述,默认地址:/var/lib/rabbitmq/mnesia/rabbit@localhost)。此配置文件将磁盘空闲空间限制设置为1GB:

disk_free_limit.absolute = 1GB
或
[{rabbit, [{disk_free_limit, 1000000000}]}]

也可以相对于机器中的RAM设置一个空闲空间限制。此配置文件将磁盘空闲空间限制设置为与机器上RAM数量相同:

disk_free_limit.relative = 1.0
或
[{rabbit, [{disk_free_limit, {mem_relative, 1.0}}]}]

当代理使用rabbitmqctl set_disk_free_limit disk_limit命令或rabbitmqctl set_disk_free_limit mem_relative fraction命令运行时,可以更改该限制。此命令将一直生效,直到代理关闭。在代理重新启动之后,还应该更改相应的配置设置。

这篇关于RabbitMQ流控-磁盘控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/635779

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

RabbitMQ练习(AMQP 0-9-1 Overview)

1、What is AMQP 0-9-1 AMQP 0-9-1(高级消息队列协议)是一种网络协议,它允许遵从该协议的客户端(Publisher或者Consumer)应用程序与遵从该协议的消息中间件代理(Broker,如RabbitMQ)进行通信。 AMQP 0-9-1模型的核心概念包括消息发布者(producers/publisher)、消息(messages)、交换机(exchanges)、

RabbitMQ使用及与spring boot整合

1.MQ   消息队列(Message Queue,简称MQ)——应用程序和应用程序之间的通信方法   应用:不同进程Process/线程Thread之间通信   比较流行的中间件:     ActiveMQ     RabbitMQ(非常重量级,更适合于企业级的开发)     Kafka(高吞吐量的分布式发布订阅消息系统)     RocketMQ   在高并发、可靠性、成熟度等

控制反转 的种类

之前对控制反转的定义和解释都不是很清晰。最近翻书发现在《Pro Spring 5》(免费电子版在文章最后)有一段非常不错的解释。记录一下,有道翻译贴出来方便查看。如有请直接跳过中文,看后面的原文。 控制反转的类型 控制反转的类型您可能想知道为什么有两种类型的IoC,以及为什么这些类型被进一步划分为不同的实现。这个问题似乎没有明确的答案;当然,不同的类型提供了一定程度的灵活性,但

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理

深入解析秒杀业务中的核心问题 —— 从并发控制到事务管理 秒杀系统是应对高并发、高压力下的典型业务场景,涉及到并发控制、库存管理、事务管理等多个关键技术点。本文将深入剖析秒杀商品业务中常见的几个核心问题,包括 AOP 事务管理、同步锁机制、乐观锁、CAS 操作,以及用户限购策略。通过这些技术的结合,确保秒杀系统在高并发场景下的稳定性和一致性。 1. AOP 代理对象与事务管理 在秒杀商品

PostgreSQL中的多版本并发控制(MVCC)深入解析

引言 PostgreSQL作为一款强大的开源关系数据库管理系统,以其高性能、高可靠性和丰富的功能特性而广受欢迎。在并发控制方面,PostgreSQL采用了多版本并发控制(MVCC)机制,该机制为数据库提供了高效的数据访问和更新能力,同时保证了数据的一致性和隔离性。本文将深入解析PostgreSQL中的MVCC功能,探讨其工作原理、使用场景,并通过具体SQL示例来展示其在实际应用中的表现。 一、

Linux 安全弹出外接磁盘

命令行操作 首先,需要卸载硬盘上的所有分区,可以使用umount来卸载分区 清空系统缓存,将所有的数据写入磁盘 sync 列出已挂载的文件系统 使用lsblk或者df命令来查找要卸载的分区 lsblk or df -h 确保没有文件正在使用 使用lsof 命令来检查 sudo lsof |grep /dev/sdc 卸载分区 假设硬盘的分区是 /dev/sdc1,使用u

vue2实践:el-table实现由用户自己控制行数的动态表格

需求 项目中需要提供一个动态表单,如图: 当我点击添加时,便添加一行;点击右边的删除时,便删除这一行。 至少要有一行数据,但是没有上限。 思路 这种每一行的数据固定,但是不定行数的,很容易想到使用el-table来实现,它可以循环读取:data所绑定的数组,来生成行数据,不同的是: 1、table里面的每一个cell,需要放置一个input来支持用户编辑。 2、最后一列放置两个b

【电机控制】数字滤波算法(持续更新)

文章目录 前言1. 数字低通滤波 前言 各种数字滤波原理,离散化公式及代码。 1. 数字低通滤波 滤波器公式 一阶低通滤波器的输出 y [ n ] y[n] y[n] 可以通过以下公式计算得到: y [ n ] = α x [ n ] + ( 1 − α ) y [ n − 1 ] y[n] = \alpha x[n] + (1 - \alpha) y[n-1]