win10下修改rabbitmq默认端口

因为业务需要断网操作,之前弄了一台Windows服务器,并使用的是activemq消息队列,用于特殊业务的中转,现在外部系统重构后需要采用的是rabbitmq,所以Windows服务器上需要支持rabbitmq,于是下载安装,创建角色,授权,一通搞,单个启动rabbitmq时没有任何问题,但是activemq切启动报端口占用,闪退。经过排查发现activemq使用的默认协议端口5672,和rabblitmq的默认端口冲突了,在不影响业务的情况下,只能修改rabbltmq的tcp监听端口。各种尝试有报错,有不生效,最后成功解决问题,记录如下:

1. rabbitmq.config默认是没有生成的,只有一个rabbitmq.config.example,需要自己建一个,要么就copy一个改下名字,要么就是把.example去掉 。

2. rabbitmq.config目录并非安装目录下面的etc,默认是在 C:\Users\%USERNAME%\AppData\Roaming\RabbitMQ 下,这一点在安装目录下面的etc目录下的readme.txt中有说明。 说明如下:

In this directory you can find an example configuration file for RabbitMQ.

Note that this directory is *not* where the real RabbitMQ
configuration lives. The default location for the real configuration
file is %APPDATA%\RabbitMQ\rabbitmq.config.

%APPDATA% usually expands to C:\Users\%USERNAME%\AppData\Roaming or similar.

3. rabbitmq.config的数据格式类似json,但并非json。其中端口号是以下这行 %% {tcp_listeners, [5672]}, 很多人以为只需把 %% 拿掉保存就OK了。但其实后面还有一个小逗号,需要注意,如果当前大节点下面就这一个节点,这个逗号是必须去掉的。 如果这是json格式,后面的小逗号是无关紧要的。但可惜,这是erlang。

4. 其次,修改了配置文件后,不能只是重启服务。我就吃了这个亏,又是重启服务又是重启服务器还是没效果,而需要到安装目录下面的sbin执行三个步骤,cmd窗口必须是管理员身份运行。

执行 rabbitmq-service.bat stop 停止服务

执行 rabbitmq-service.bat install 重新安装服务,这时才会重新加载config文件

执行 rabbitmq-service.bat start 开启服务

5. . 如果config有问题,服务是启动不起来的,而且错误信息也是很难发现的,我最先就是那个端口后面那个逗号没有去掉,结果启动出错,又不知道错误原因,很难排查。

6. 所有config的修改,都必须修改好后,执行第4步

7. 如果是通过环境变量设置config所在目录,一定要注意,环境变量 RABBITMQ_CONFIG_FILE, 这个变量并非是config所在目录,也不是config的全路径。 如你想设置config为 D:\RabbitMQ\rabbitmq.config,则 RABBITMQ_CONFIG_FILE=D:\RabbitMQ\rabbitmq ,因为rabbitmq会自动在变量值后面加上.config后缀,这个在rabbitmq的官方文档上有说明。

你可能感兴趣的:(mq)