Bootstrap

Windows10环境下安装RabbitMq折腾记

        最近有个老项目需要迁移到windows10环境,用的是比较老的rabbitmq安装包,如下所示。经过一番折腾,死活服务起不来,最终果断放弃老版本启用新版本。现在把折腾过程记录下:

一、安装erlang

 安装完成后的目录结构,我的路径是D:\Apps\EnvSoft\ErlangOPT21。:

        设置环境变量:ERLANG_HOME。

        并添加到path路径:

        验证是否安装成功:erl

二、安装RabbitMq

1.创建配置目录并设置环境变量RABBITMQ_BASE

        为了避免中文路径问题,先创建一个全英文的用于配置的路径:D:\Apps\RabbitMq\AData。

然后设置环境变量RABBITMQ_BASE。

 2.安装Rabbitmq

        安装路径规划为:D:\Apps\RabbitMq\RMQS383。

         安装完成,可以在开始菜单查看到如下菜单:

        安装路径目录结构:

        此时,已经可以在服务中发现RabbitMQ服务了。

3.设置环境变量RABBITMQ_HOME

        设置环境变量RABBITMQ_HOME,变量值为D:\Apps\RabbitMq\RMQS383\rabbitmq_server-3.8.3。

        并添加到path路径:

4.使能管理插件服务并启动RabbitMQ Service服务。

        以管理员身份运行命令提示符,并进入到Rabbit安装目录下的sbin路径。

        开启rabbitmq_management插件 ,命令

rabbitmq-plugins enable rabbitmq_management

         启动服务:rabbitmq-service.bat start

         然而,发现登陆 http://127.0.0.1:15672/管理界面失败。

         右键RabbitMQ服务属性,发现服务状态是已停止。

        

三、尝试解决方案

1.查看erlang版本号

        检查 Erlang 安装目录中的 RELEASE 下的OTP_VERSION,发现是21.3。RabbitMQ 3.8.3支持的Erlang版本范围主要是21.3至22.x。这意味着RabbitMQ 3.8.3可以与Erlang 21.3版本及以上、22.x版本(包括22.0到22.9的任何次版本)兼容。

2.查看两个路径下的文件

        一个是RABBITMQ_BASE:D:\Apps\RabbitMq\AData,一个是用户目录APPDATA下的。

         尝试复制用户目录下的文件到RABBITMQ_BASE下。然后删除用户目录下的文件夹RabbitMQ。但做这个动作之前,先remove掉服务。命令是:

rabbitmq-service.bat remove

        最后,只在RABBITMQ_BASE目录下有配置文件:

        然后,安装服务,命令如下:

rabbitmq-service.bat install

         再启动服务。

         然而,还是没有用,服务仍然是启动后又停止了。 

3.尝试添加环境变量RABBITMQ_ADVANCED_CONFIG_FILE。

        尝试添加一个环境变量,刚刚只是手动复制了advanced.config,但是没有设置环境变量。

        同样的重复卸载、安装、启动,然而还是不起作用。

4.查看Windows日志 

        最后想到查看Windows日志。

        果然,看到尝试过程中的错误信息:

错误应用程序名称: erl.exe,版本: 0.0.0.0,时间戳: 0x5c86ce75
错误模块名称: crypto.dll,版本: 0.0.0.0,时间戳: 0x5c86d146
异常代码: 0xc0000005
错误偏移量: 0x0000000000017623
错误进程 ID: 0x16a4
错误应用程序启动时间: 0x01db60ccd11c2d9b
错误应用程序路径: D:\Apps\EnvSoft\ErlangOPT21\erts-10.3\bin\erl.exe
错误模块路径: d:\Apps\EnvSoft\ErlangOPT21\lib\crypto-4.4.1\priv\lib\crypto.dll
报告 ID: 1e633629-a3ca-4293-80be-6149f95878fd
错误程序包全名: 
错误程序包相对应用程序 ID: 

5.尝试换一个版本的erlang。 

        结束erl的进程epmd.exe。

        重新安装erlang,使用22版本。

        修改环境变量。

         然而,还是报错。那是不是要换一个rabbitmq。

6.尝试新版本的rabbitmq。

        最后尝试从官网下载3.13版本的rabbitmq,然后彻底卸载之前的安装。下面地址是官网的rabbitmq与erlang的兼容矩阵。

https://www.rabbitmq.com/docs/which-erlang#compatibility-matrix

        卸载干净Rabbitmq:删掉用户目录和systemprofile下的.erlang.cookie文件。

         删除注册表中的Ericsson文件夹。

四、最终解决方案

        从官网下载如下版本的erlang和rabbitmq安装包。 

 附:rabbitmq官网:

https://www.rabbitmq.com/docs/which-erlang

        erlang官网:

Otp 26.2.5.6 - Erlang/OTP

         erlang安装步骤不变,rabbitmq安装步骤简单,最后可以勾选启动服务,同样安装完后开启管理界面,命令:

         rabbitmq-plugins enable rabbitmq_management

         重启RabbitMQ服务

        访问RabbitMQ管理界面 

http://localhost:15672/

总结

        Rabbitmq3.8.3官方已经明确不支持了,所以果断放弃,使用新版本吧!

        RabbitMQ 3.8 was released in October 2019, and reached end of life on July 31st, 2022, we strongly discourage its use.

;