RabbitMQ 是最流行的开源消息队列系统,它是在在 AMQP (一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计) 基础上完成的,可复用的企业消息系统。RabbitMQ 具有良好的性能和时效性,同时还能够非常好的支持集群和负载部署,非常适合在较大规模的分布式系统中使用。
这里 Linux 选择 CentOS 7.2。
1.RabbitMQ单机版安装
//安装erlang
# wget -P /usr/local http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm
# cd /usr/local
# rpm -ivh erlang-19.0.4-1.el7.centos.x86_64.rpm
# erl -v
//安装RabbitMQ
# yum -y install socat
# wget -P /usr/local http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.12/rabbitmq-server-3.6.12-1.el7.noarch.rpm
# rpm -ivh rabbitmq-server-3.6.12-1.el7.noarch.rpm
# service rabbitmq-server start //启动服务
# service rabbitmq-server status //查看服务状态
# service rabbitmq-server stop //关闭服务
# cd /sbin
# ./rabbitmq-plugins list
# ./rabbitmqctl status
//创建用户并授权
# ./rabbitmqctl add_user root 123456 //用户名、密码
# ./rabbitmqctl set_user_tags root administrator
//创建虚拟消息服务器,每个VirtualHost之间是相互隔离的,exchange、queue、message不能互通。
# ./rabbitmqctl add_vhost /root
//具有/admin这个virtual host中所有资源的配置、写、读权限以便管理其中的资源,".*"表示 ,"."表示
# ./rabbitmqctl set_permissions -p "/root" root ".*" ".*" ".*"
//开启网页控制台,重启生效,浏览器输入<ip>:15672即可进入控制台
# ./rabbitmq-plugins enable rabbitmq_management
其他命令:
# ./rabbitmqctl list_users //查看当前用户列表
# ./rabbitmqctl delete_user <Username> //删除用户
# ./rabbitmqctl change_password <Username> <Newpassword> //修改用户的密码
# ./rabbitmqctl set_permissions -p <VHostPath> <User> <ConfP> <WriteP> <ReadP> //设置用户权限
# ./rabbitmqctl list_permissions [-p <VHostPath>] //查看(指定hostpath)所有用户的权限信息
# ./rabbitmqctl list_user_permissions <User> //查看指定用户的权限信息
# ./rabbitmqctl clear_permissions [-p <VHostPath>] <User>//清除用户的权限信息
用户角色包括:
Tables | Are |
---|---|
超级管理员(administrator) | 可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。 |
监控者(monitoring) | 可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)。 |
策略制定者(policymaker) | 可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。 |
普通管理者(management) | 仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。 |
其他 | 无法登陆管理控制台,通常就是普通的生产者和消费者。 |