一.Mac OS安装RabbitMQ
1、安装
在Mac下安装RabbitMQ是非常简单的,一般默认RabbitMQ服务器依赖的Erlang已经安装,只需要用下面两个命令就可以完成RabbitMQ的安装(前提是homebrew已经被安装):
brew update
brew install rabbitmq
耐心等待,安装完成后需要将/usr/local/sbin添加到$PATH,可以将下面这两行加到~/.bash_profile:
# RabbitMQ Config
export PATH=$PATH:/usr/local/sbin
编辑完后:wq保存退出,使环境变量立即生效。
source ~/.bash_profile
2、启动RabbitMQ服务
上面配置完成后,需要关闭终端窗口,重新打开,然后输入下面命令即可启动RabbitMQ服务:
rabbitmq-server
3、登录Web管理界面
浏览器输入localhost:15672
,账号密码全输入guest即可登录。
这里如果显示找不到主机,请在hosts文件中添加
vi /private/etc/hosts
127.0.0.1 localhost
4、启动server
重新启动终端或者切换一屏,输入rabbitmq-server,出现如下模样,表示安装并启动成功。
注意:如果要将rabbitmq以后台进程进行启动,使用如下命令。
5、配置server
- 定制环境变量:在如下的文件中配置:$RABBITMQ_HOME/etc/rabbitmq/rabbitmq-env.con(刚刚安装后,该文件不存在)
- 配置一些运行参数:在如下的文件中配置:$RABBITMQ_HOME/etc/rabbitmq/rabbitmq.config(刚刚安装后,该文件不存在,但是在该路径下存在一个rabbitmq.config.example文件,对于rabbitmq.config的配置可以参考该example文件)
6、查看rabbitmq server的状态status
- rabbitmqctl status
7、关闭rabbitmq server
- 在前台进程状态下,可以直接使用Ctrl+c退出
- 后台进程下,使用rabbitmqctl stop
二.设置RabbitMQ远程ip登录
由于账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过localhost登陆使用,并建议修改guest用户的密码以及新建其他账号管理使用rabbitmq。
这里我们以创建个test帐号,密码123456为例,创建一个账号并支持远程ip访问。
- 创建账号
rabbitmqctl add_user test 123456
- 设置用户角色
rabbitmqctl set_user_tags test administrator
- 设置用户权限
rabbitmqctl set_permissions -p "/" test ".*" ".*" ".*"
- 设置完成后可以查看当前用户和角色(需要开启服务)
rabbitmqctl list_users
这是你就可以通过其他主机的访问RabbitMQ的Web管理界面了,访问方式,浏览器输入:serverip:15672
。其中serverip是RabbitMQ-Server所在主机的ip。
RabbitMQ常用操作:
1、用户管理
用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。
(1) 新增一个用户
rabbitmqctl add_user Username Password
(2) 删除一个用户
rabbitmqctl delete_user Username
(3) 修改用户的密码
rabbitmqctl change_password Username Newpassword
(4) 查看当前用户列表
rabbitmqctl list_users
2、 用户角色
按照个人理解,用户角色可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。
(1) 超级管理员(administrator)
可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
(2) 监控者(monitoring)
可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
(3) 策略制定者(policymaker)
可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。与administrator的对比,administrator能看到这些内容。
(4) 普通管理者(management)
仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
(5) 其他
无法登陆管理控制台,通常就是普通的生产者和消费者。
了解了这些后,就可以根据需要给不同的用户设置不同的角色,以便按需管理。
设置用户角色的命令为:
rabbitmqctl set_user_tags User Tag
User为用户名, Tag为角色名(对应于上面的administrator,monitoring,policymaker,management,或其他自定义名称)。
也可以给同一用户设置多个角色,例如
rabbitmqctl set_user_tags username monitoring policymaker
3、用户权限
用户权限指的是用户对exchange,queue的操作权限,包括配置权限,读写权限。配置权限会影响到exchange,queue的声明和删除。读写权限影响到从queue里取消息,向exchange发送消息以及queue和exchange的绑定(bind)操作。
例如: 将queue绑定到某exchange上,需要具有queue的可写权限,以及exchange的可读权限;向exchange发送消息需要具有exchange的可写权限;从queue里取数据需要具有queue的可读权限。详细请参考官方文档中"How permissions work"部分。
相关命令为:
(1) 设置用户权限
rabbitmqctl set_permissions -p VHostPath User ConfP WriteP ReadP
(2) 查看(指定hostpath)所有用户的权限信息
rabbitmqctl list_permissions [-p VHostPath]
(3) 查看指定用户的权限信息
rabbitmqctl list_user_permissions User
(4) 清除用户的权限信息
rabbitmqctl clear_permissions [-p VHostPath] User