RabbitMQ 流控制学习
2016-04-13 11:04
686 查看
rabbitmq有一个流控机制,当超过限定时候就会阻止接受消息,mq流控有三种机制 1,主动阻塞住发消息太快的连接,这个无法调整,如果被阻塞了,在abbitmqctl 控制台上会显示一个blocked的状态。
2,内存超过限量,会阻塞连接,在vm_memory_high_watermark可调
3,剩余磁盘在限定以下mq会 主动阻塞所有的生产者,默认为50m,在disk_free_limit可调.
一、内存控制:vm_memory_high_watermark 该值为内存阈值,默认为0.4。意思为物理内存的40%。40%的内存并不是内存的最大的限制,它是一个发布的节制,当达到40%时Erlang会做GC。最坏的情况是使用内存80%。如果把该值配置为0,将关闭所有的publishing 。rabbitmqctl set_vm_memory_high_watermark 0 Paging 内存阈值,该值为默认为0.5,该值为vm_memory_high_watermark的20%时,将把内存数据写到磁盘。如机器内存16G,当RABBITMQ占用内存1.28G(16*0.4*0.2)时把内存数据放到磁盘。 二、硬盘控制:当RabbitMQ的磁盘空闲空间小于50M(默认),生产者将被BLOCK,如果采用集群模式,磁盘节点空闲空间小于50M将导致其他节点的生产者都被block可以通过disk_free_limit来对进行配置。
2,内存超过限量,会阻塞连接,在vm_memory_high_watermark可调
3,剩余磁盘在限定以下mq会 主动阻塞所有的生产者,默认为50m,在disk_free_limit可调.
一、内存控制:vm_memory_high_watermark 该值为内存阈值,默认为0.4。意思为物理内存的40%。40%的内存并不是内存的最大的限制,它是一个发布的节制,当达到40%时Erlang会做GC。最坏的情况是使用内存80%。如果把该值配置为0,将关闭所有的publishing 。rabbitmqctl set_vm_memory_high_watermark 0 Paging 内存阈值,该值为默认为0.5,该值为vm_memory_high_watermark的20%时,将把内存数据写到磁盘。如机器内存16G,当RABBITMQ占用内存1.28G(16*0.4*0.2)时把内存数据放到磁盘。 二、硬盘控制:当RabbitMQ的磁盘空闲空间小于50M(默认),生产者将被BLOCK,如果采用集群模式,磁盘节点空闲空间小于50M将导致其他节点的生产者都被block可以通过disk_free_limit来对进行配置。
查看exchange信息 /sbin/rabbitmqctl list_exchanges name type durable auto_delete arguments 查看队列信息 /sbin/rabbitmqctl list_queues name durable auto_delete messages consumers me 查看绑定信息 /sbin/rabbitmqctl list_bindings 查看连接信息 /sbin/rabbitmqctl list_connections
相关文章推荐
- Rabbitmq集群搭建笔记
- 利用Python学习RabbitMQ消息队列
- python使用rabbitmq实现网络爬虫示例
- Linux下PHP扩展amqp安装
- rabbitmq学习
- CentOS6.5 安装rabbitmq
- 非常不错的rabbitmq集群高可用部署
- Rabbitmq 安装与配置
- rabbitmq可靠性保证(原文加上部分标记)
- rabbitmq流控制(原文标记)
- 自研轻量级分布式实时计算框架light_drtc
- win7安装RabbitMQ
- RabbitMQ liunx-centos 安装过程记录
- rabbitmq集群安装实践
- AMQP协议
- RabbitMQ 系列——1.初始
- rabbitMQ安装
- rabbitmq——用户管理
- rabbitmq 消息传送与监听
- rabbitmq 消息传送与监听