window下rabbitmq的配置问题

最近项目想用个MQ来做业务分离,看了市面上众多产品,最后选了rabbitmq,理由很简单,对window的支持很到位(其实是公司的系列产品都是.net的)。

安装方法什么的就不说了,直接到官网下载双击安装就可以。

如果全部都使用默认配置,你将不会遇到任何阻碍。

安装之后设置一下帐号信息,抄了网上的一个方子:

 

[csharp] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. REM 开启网页版管理平台  
  2. rabbitmq-plugins.bat enable rabbitmq_management  
  3.   
  4. REM 添加一个帐号 密码  
  5. rabbitmqctl.bat add_user lijinan lijinan  
  6.   
  7. REM 添加角色  
  8. rabbitmqctl.bat set_user_tags lijinan administrator  
  9.   
  10. REM 添加权限  
  11. rabbitmqctl.bat set_permissions -p /  lijinan ".*" ".*" ".*"  

 

设置好之后,你可以到  http://localhost:15672 看到爽歪歪的管理界面,按官网给出的C#解决方法,嗯,一切顺利,发送,接收都是如此的完美

在本地试过没问题之后,于是就安装到了公司内部服务器

因为公司网络有端口限制,防火墙只开了有限的端口,默认的5672和15672是用不了的,正常流程是找IT开端口,但为是省事,想直接通过修改rabbitmq的配置文件,把默认端口改为公司允许的端口,比如我是要改到8008。

于是就开始了修改配置,这里面遇多了一些坑,总结一下:

1. rabbitmq.config默认是没有生成的,只有一个rabbitmq.config.example,需要自己建一个,其实就是把.example拿掉就是了

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

3. rabbitmq.config的数据格式类似json,但并非json。其中端口号是以下这行

    %% {tcp_listeners, [5672]},

     很多人以为只需把  %% 拿掉保存就OK了。但其实后面还有一个小逗号,需要注意,如果当前大节点下面就这一个节点,这个逗号是必须拿掉的。

     如果这是json格式,后面的小逗号是无关紧要的。但可惜,这是erlang。

4. 其次,修改了配置文件后,不能只是重启服务。而需要到安装目录下面的sbin

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

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

  执行  rabbitmq-service.bat start  开启服务
5. 所有的命令行操作,都必须在管理员的权限下进行

6. 如果config有问题,服务是启动不起来的,而且错误信息也是很难发现的。

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

8. 如果是通过环境变量设置config所在目录,一定要注意,环境变量 RABBITMQ_CONFIG_FILE, 这个变量并非是config所在目录,也不是config的全路径。

   如你想设置config为 D:\RabbitMQ\rabbitmq.config,则 RABBITMQ_CONFIG_FILE=D:\RabbitMQ\rabbitmq ,因为rabbitmq会自动在变量值后面加上.config后缀

posted @ 2017-01-16 14:04  星火卓越  阅读(417)  评论(0编辑  收藏  举报