首页 > Python基础教程 >
-
C#教程之RabbitMQ安装笔记
前言
项目中某些场景考虑到高并发情况,调研后决定使用RabbitMQ,本来以为很简单,没想到配置环境花费了好多时间,按照网上的方法来,总是有其他问题需要继续查找,特记录此笔记,方便下次部署安装。
本笔记只记录安装过程,不探讨RabbitMQ技术。
准备
使用RabbitMQ,除了要安装RabbitMQ外,还必须安装Erlang,由于RabbitMQ使用Erlang语言编写,所以必须先安装Erlang语言运行环境。
1.Erlang下载:http://www.erlang.org/downloads
2.RabbitMQ下载:http://www.rabbitmq.com/
另外先提一下,Erlang和RabbitMQ安装好需要添加到系统的环境变量中,因为这个花费了我一些时间。
Erlang安装
1.安装
下载完Erlang之后,打开安装包后,一步步安装完成,这里没什么需要注意的地方。
2.设置环境变量
找到Erlang的安装路径打开到bin文件夹下,注意此路径。‘
右键我的电脑,选择属性,找到高级系统设置,点开后选择高级里的环境变量。
找到系统变量中的Path,点击编辑
新建环境变量,添加路径,可以直接复制打开的Erlang的bin路径。
3.检查Erlang是否安装成功
打开cmd,输入 erl 后回车,如果能显示版本信息,表明安装成功。
RabbitMQ安装
1.解压下载好的RabbitMQ
2.配置环境变量
找到RabbitMQ的安装路径打开到sbin文件夹下,注意此路径。
同Erlang的环境变量添加,新建路径,添加到系统变量的Path中
3.CMD中安装、启动服务
使RabbitMQ以Windows Service的方式在后台运行,打开CMD,定位到RabbitMQ的sbin目录下。(快捷方法:在sbin目录里按住shift+右键,选择在此处打开命令窗口)
执行:
rabbitmq-service install rabbitmq-service enable rabbitmq-service start
注意,CMD需要管理员权限,否则会报错Unable to register service with service manager. Error: Access is denied.
执行完成后,显示如下信息,表示RabbitMQ的服务端已经启动起来了。
然后,可以用rabbitmqctl这个脚本查看和控制RabbitMQ服务端的状态。
查看状态:
rabbitmqctl status
此时查看一般会出现如下错误:
解决方法如下:
将C:\Users\XXXX\.erlang.cookie 文件拷贝到C:\Windows\System32\config\systemprofile替换掉.erlang.cookie文件。(XXXX为window账户)
重启rabbitMQ服务:CMD中 先输入 net stop RabbitMQ ,然后输入 net start RabbitMQ
net stop RabbitMQ
net start RabbitMQ
此后,再次输入
rabbitmqctl status
显示如下信息,RabbitMQ至此已经正确安装完毕。
用户设置与web管理工具插件安装
1.新建用户
使用命令查看用户:
rabbitmqctl list_users
RabbitMQ会为我们创建默认的用户名guest和密码guest,guest默认拥有RabbitMQ的所有权限。
如果我们需要自己创建用户,那么需要执行类似于下面的命令,设置密码,并授予权限,并将其设置为管理员。
1 rabbitmqctl add_user ading 123456 //创建用户ading密码为123456 2 rabbitmqctl set_permissions ading ".*" ".*" ".*" //赋予ading读写所有消息队列的权限 3 rabbitmqctl set_user_tags ading administrator //分配用户组
另,修改用户密码和删除用户方法如下:
1 rabbitmqctl change_password ading 123 2 rabbitmqctl delete_user ading
2.安装web管理工具插件
CMD中输入:
rabbitmq-plugins enable rabbitmq_management
web管理工具的地址是:http://localhost:15672,初始用户名:guest 初始密码:guest
打开浏览器,输入地址:http://127.0.0.1:15672/#/
总结
不懂的技术,如果配置部署麻烦,也请不要烦躁,因为他人都得经历这些。你得知道,那么多人推荐那么多使用,总是有原因的,别因为一点麻烦就放弃一项好的技术。