简介
RabbitMQ是最受欢迎的开源消息中间件之一,在全球范围内被广泛应用。RabbitMQ是轻量级且易于部署的,能支持多种消息协议。RabbitMQ可以部署在分布式系统中,以满足大规模、高可用的要求。
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件,用于在分布式系统中存储转发消息,有良好的易用性、扩展性和高可用性。
RabbitMQ使用Erlang语言编写服务器端,并支持多种客户端,如Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP和STOMP,同时也支持AJAX。
相关概念
路由模式

| 标志 | 中文名 | 英文名 | 描述 |
|---|---|---|---|
| P | 生产者 | Producer | 消息的发送者,可以将消息发送到交换机 |
| C | 消费者 | Consumer | 消息的接收者,从队列中获取消息并进行消费 |
| X | 交换机 | Exchange | 接收生产者发送的消息,并根据路由键发送给指定队列 |
| Q | 队列 | Queue | 存储从交换机发来的消息 |
| type | 交换机类型 | type | 不同类型的交换机转发消息方式不同 |
| fanout | 发布/订阅模式 | fanout | 广播消息给所有绑定交换机的队列 |
| direct | 路由模式 | direct | 根据路由键发送消息 |
| topic | 通配符模式 | topic | 根据路由键的匹配规则发送消息 |
安装
Mac
brew install rabbitmq
Windows
安装Erlang语言环境
- 下载安装
- 添加环境变量
验证是否成功**
C:\Users\Administrator>erl
Eshell V10.3 (abort with ^G)
1>
安装RabbitMQ

进入到RabbitMQ安装目录下的sbin目录在命令提示符中执行如下命令以启动管理功能,这样的话就可以添加RabbitMQ的可视化插件


点击启动
RabbitMQ默认的账号为guest,密码也为guest,进行登录后就可以看见RabbitMQ的管理界面

Linux
# 安装Erlang
# 下载rpm仓库
rpm -Uvh https://download.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install erlang
# 检查是否成功
erl -version
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.7.1
# 安装RabbitMQ
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
yum -y install rabbitmq-server-3.6.6-1.el7.noarch.rpm
# 开机启动
systemctl enable rabbitmq-server
# 启动
systemctl start rabbitmq-server
# 查看状态
systemctl status rabbitmq-server
# 停止服务
systemctl stop rabbitmq-server
注意
也可以在这里选择版本

卸载
yum list | grep rabbitmq
yum -y remove rabbitmq-server.noarch
yum list | grep erlang
yum -y remove erlang-*
yum remove erlang.x86_64
rm -rf /usr/lib64/erlang
rm -rf /var/lib/rabbitmq
使用
添加用户

点击用户进入用户配置页面
给用户配置该虚拟host的权限
开启浏览器访问
rabbitmq-plugins enable rabbitmq_management
[root@linis_server ~]# rabbitmqctl add_user root admin123
Creating user "root" ...
# 删除用户
rabbitmqctl delete_user Username
rabbitmqctl set_user_tags root administrator
# 用户角色
(1) 超级管理员(administrator)
可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
(2) 监控者(monitoring)
可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
(3) 策略制定者(policymaker)
可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
与administrator的对比,administrator能看到这些内容
(4) 普通管理者(management)
仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
(5) 其他
无法登陆管理控制台,通常就是普通的生产者和消费者。
了解了这些后,就可以根据需要给不同的用户设置不同的角色,以便按需管理。
rabbitmqctl set_permissions -p / root“.*”“.*”“.*”
列出用户 : rabbitmqctl list_users
新建用户:rabbitmqctl add_user xxx pwd
删除用户: rabbitmqctl delete_user xxx
改密码: rabbimqctlchange_password {username} {newpassword}
设置用户角色:rabbitmqctl set_user_tags {username} {tag ...}
Tag可以为 administrator,monitoring, management


