RabbitMQ连接处于阻塞状态?

10

当我连接到RabbitMQ服务器时,我的连接处于阻塞状态,我无法发布新消息。 我有6GB的可用内存和约8GB的磁盘空间

如何配置RabbitMQ中的磁盘空间限制


能否提供更多信息?比如代码示例、浏览器中管理 GUI 的截图等。 - robthewolf
从代码上来看,相关的修复和讨论: http://stackoverflow.com/questions/14386392/how-to-detect-alarm-based-blocking-rabbitmq-producer/17104037#17104037 - hellojava
2个回答

12

我遇到了相同的问题。似乎是rabbitmq服务器使用的内存超过了阈值。

http://www.rabbitmq.com/memory.html

我运行了以下命令来解除这些连接的阻塞:

rabbitmqctl set_vm_memory_high_watermark 0.6

(默认值为0.4)


1
以上命令应在rabbitmq仍在运行时运行,并立即反映出来。 - Lee Chee Kiam

4
默认情况下,[disk_free_limit](来源:[1])必须超过可用RAM的1.0倍。在您的情况下是这样,因此您可能要检查到底是什么阻止了流程。为此,请阅读[rabbitmqctl man](来源:[2]),然后运行last_blocked_by命令。这应该告诉您阻止的原因。
假设是内存问题(并且某种方式您没有正确计算可用磁盘空间),要更改disk_free_limit,请阅读[配置rabbitmq.config](来源:[1]),然后打开您的rabbitmq.config文件并在配置声明中添加以下行:{rabbit,[{disk_free_limit,{mem_relative,0.1}}]}。我的rabbitmq.config文件如下所示:
[
{rabbit, [{disk_free_limit, {mem_relative, 0.1}}]}
].

具体的数字当然由您决定。

参考资料

  1. http://www.rabbitmq.com/configure.html#configuration-file
  2. http://www.rabbitmq.com/man/rabbitmqctl.1.man.html

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接