Rabbitmq 服务器在启动期间随机超时

Rabbitmq 服务器在启动期间随机超时

我在 Ubuntu 16.04 服务器上安装了 Rabbitmq 服务器版本3.5.7-1ubuntu0.16.04.2。重新启动服务器时,Rabbitmq 随机启动失败。Rabbit 服务器是从官方 Ubuntu 存储库安装的。没有集群,它只是一个独立的服务器。

当问题发生时,以下内容会在重启时记录到 Journalctl 中:

Jun 03 09:50:52 hostname systemd[1]: Starting RabbitMQ Messaging Server...
...
Jun 03 09:51:23 hostname rabbitmq[1067]: Waiting for 'rabbit@hostname' ...
Jun 03 09:51:24 hostname rabbitmq[1067]: pid is 2455 ... 

09:51:29 时,尝试使用 Rabbit 的应用程序无法连接:[Errno 111] Connection refused

几秒钟后,Rabbit 按照如下方式启动:/var/log/rabbitmq/[email protected]

=INFO REPORT==== 3-Jun-2018::09:52:22 ===
Server startup complete; 6 plugins started.
 * rabbitmq_management
 * rabbitmq_web_dispatch
 * webmachine
 * rabbitmq_management_agent
 * mochiweb
 * amqp_client

但与此同时,Rabbit 因 Start-post 操作超时而进入错误状态:

Jun 03 09:52:22 hostname systemd[1]: rabbitmq-server.service: Start-post operation timed out. Stopping.
Jun 03 09:52:22 hostname systemd[1]: Failed to start RabbitMQ Messaging Server.
Jun 03 09:52:22 hostname systemd[1]: rabbitmq-server.service: Unit entered failed state.
Jun 03 09:52:22 hostname systemd[1]: rabbitmq-server.service: Failed with result 'timeout'.

登录时/var/log/rabbit没有显示任何错误警告。

查看 Systemd 单元文件,我发现 Startpost 操作执行/usr/lib/rabbitmq/bin/rabbitmq-server-wait包含以下代码的脚本:

. `dirname $0`/rabbitmq-env
/usr/lib/rabbitmq/bin/rabbitmqctl wait $RABBITMQ_PID_FILE

运行命令 service rabbitmq-server start 后,服务即可顺利启动。

我无法理解此 Start-post 操作的目的是什么以及它为什么会超时。是什么原因导致了这个问题?我应该如何继续研究它?

答案1

RabbitMQ 团队监控邮件rabbitmq-users列表并且仅有时回答 StackOverflow 上的问题。


您使用的 RabbitMQ 版本已过时且不受支持。自那时起,systemd集成功能已得到改进。您应该使用最新版本的 RabbitMQ 和 Erlang 19.3 或更高版本。

相关内容