rabbit:do_run_postlaunch_phase/0 line 932

博客记录了RabbitMQ在启动时遇到BOOTFAILED错误,问题与rabbitmq_delayed_message_exchange插件有关。解决方法是在启动容器后立即停用该插件,然后再重新启用。需要注意的是,延时队列插件不支持RAM节点。参考链接提供了更多相关信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2022-06-20 11:14:04.474 [error] <0.913.0>
2022-06-20 11:14:04.474 [error] <0.913.0> BOOT FAILED
2022-06-20 11:14:04.474 [error] <0.913.0> ===========
2022-06-20 11:14:04.474 [error] <0.913.0> Exception during startup:
2022-06-20 11:14:04.474 [error] <0.913.0>
2022-06-20 11:14:04.474 [error] <0.913.0>     rabbit:do_run_postlaunch_phase/0 line 932
2022-06-20 11:14:04.475 [error] <0.913.0>     lists:foreach/2 line 1338
2022-06-20 11:14:04.475 [error] <0.913.0>     rabbit:'-do_run_postlaunch_phase/0-fun-12-'/1 line 934
2022-06-20 11:14:04.475 [error] <0.913.0>     rabbit_boot_steps:run_boot_steps/1 line 29
2022-06-20 11:14:04.475 [error] <0.913.0>     rabbit_boot_steps:'-run_boot_steps/1-lc$^0/1-0-'/1 line 28
2022-06-20 11:14:04.475 [error] <0.913.0>     rabbit_boot_steps:run_step/2 line 55
2022-06-20 11:14:04.475 [error] <0.913.0>     rabbit_boot_steps:'-run_step/2-lc$^0/1-0-'/2 line 50
2022-06-20 11:14:04.475 [error] <0.913.0> error:{case_clause,{timeout,['rabbit_delayed_messagerabbit@flowable-mq3',
2022-06-20 11:14:04.475 [error] <0.913.0>                              'rabbit_delayed_messagerabbit@flowable-mq3_index']}}
2022-06-20 11:14:04.476 [error] <0.913.0>

原因是跟延时队列插件有关
启动容器后立即停用延时队列插件

docker exec rabbitmq rabbitmq-plugins disable rabbitmq_delayed_message_exchange

之后重新启用即可

docker exec rabbitmq rabbitmq-plugins enable rabbitmq_delayed_message_exchange

使用延时队列插件要注意节点是否是 DISK, 插件不支持 RAM

本文仅做记录使用。
相关参考
https://www.qiansw.com/rabbitmq-cluster-failed-to-start-after-crash.html
https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/issues/17

<think>好的,用户遇到了在启用RabbitMQ管理插件时出现依赖缺失的错误,比如缺少asn1、crypto、public_key等。我需要根据提供的引用资料来整理解决方案。 首先,引用3和4提到问题可能与SSL依赖有关。用户执行rabbitmq-plugins enable命令时报错,可能原因包括Erlang安装时未正确配置SSL,或者依赖模块未正确安装。根据引用4,安装Erlang时需要指定--with-ssl选项,指向正确的OpenSSL路径。例如,在CentOS系统下,用户可能没有正确配置SSL路径,导致Erlang编译时缺少相关模块。 另外,引用3中提到用户在控制台执行ssl:versions()时出现异常,说明Erlang的SSL模块未正确安装。这可能是因为Erlang安装时缺少SSL支持,或者OpenSSL版本不兼容。需要确认OpenSSL已正确安装,并且Erlang配置时指向了正确的路径。 解决方案可能包括重新安装Erlang并确保SSL配置正确,或者检查环境变量是否正确设置。引用4提供的配置命令可以作为参考:./configure --prefix=/usr/local/erlang20 --without-javac --with-ssl=/usr/local/openssl。用户需要根据实际安装路径调整--with-ssl参数。 此外,引用1和2提到在Windows环境下,可能需要设置日志缓存目录或重新安装服务。例如,删除现有服务,设置RABBITMQ_SERVER环境变量,然后重新安装和启动服务。这可能解决因路径错误或服务配置问题导致的依赖缺失。 综合这些信息,解决方案步骤可能包括: 1. 确认OpenSSL已正确安装,版本兼容。 2. 重新安装Erlang,确保配置时包含SSL支持。 3. 检查环境变量,如RABBITMQ_SERVER是否正确设置。 4. 删除并重新安装RabbitMQ服务。 5. 再次启用管理插件。 需要分步骤指导用户操作,并提醒不同系统下的注意事项,如CentOS和Windows的差异。</think>### 解决RabbitMQ管理插件依赖缺失问题的方法 #### 1. 确认Erlang的SSL依赖安装 RabbitMQ依赖Erlang的加密模块(如$crypto$、$ssl$),若安装Erlang时未正确配置SSL路径会导致依赖缺失[^3][^4]。 - **检查OpenSSL安装**:确保系统中已安装OpenSSL,并记录其安装路径(如Windows下默认路径或Linux下的`/usr/local/openssl`)。 - **重新编译Erlang**:在Linux系统中,使用以下命令重新配置并安装Erlang: ```bash ./configure --prefix=/usr/local/erlang --with-ssl=/usr/local/openssl make && make install ``` 其中`--with-ssl`需指向实际的OpenSSL路径。 #### 2. 修复Windows环境变量问题 若在Windows报错,需检查环境变量和服务配置: - **删除并重建RabbitMQ服务**: ```cmd rabbitmq-service remove set RABBITMQ_SERVER=F:\RabbitMQ\data # 替换为实际数据目录 rabbitmq-service install rabbitmq-server start ``` 此操作可解决路径配置错误导致的依赖加载失败[^1]。 #### 3. 验证Erlang的SSL模块 启动Erlang交互终端,检查$ssl$模块是否正常: ```erlang 1> ssl:versions(). ``` 若返回版本信息(如`[{ssl_app,"10.7"}, ...]`)说明SSL模块正常;若报错则需重新安装Erlang。 #### 4. 启用管理插件 完成上述步骤后,再次尝试启用管理插件: ```cmd rabbitmq-plugins enable rabbitmq_management ``` #### 5. 其他可能原因 - **依赖模块冲突**:若仍报错,尝试禁用其他插件或升级RabbitMQ版本。 - **权限问题**:在Linux中确保Erlang和RabbitMQ安装目录的读写权限。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值