一、虚拟主机
RabbitMQ服务器可以创建虚拟主机,它能拥有自己的队列、绑定和交换机,就像一个有自己的权限机制的迷你版RabbitMQ,不同的虚拟主机之间完全隔离,上篇例子都是基于默认的虚拟主机“/”,用的默认的guest用户和密码,项目上线时,默认的guest用户应该删除,取消管理员权限或者改变密码。下面创建自己的用户和虚拟主机,并赋予权限。
[root@slave1 ~]# rabbitmqctl add_user yangyang 123456Creating user "yangyang" ......done.[root@slave1 ~]# rabbitmqctl add_vhost web_developCreating vhost "web_develop" ......done.# set_permissions 后面的三个 ".*" ,分别是配置(队列和交换的创建和删除)、写(发布消息)、读(小飞消息)的权限[root@slave1 ~]# rabbitmqctl set_permissions -p web_develop yangyang ".*" ".*" ".*"Setting permissions for user "yangyang" in vhost "web_develop" ......done.
查看存在的虚拟主机、队列和用户
[root@slave1 ~]# rabbitmqctl list_vhostsListing vhosts .../web_develop...done.# 还没有声明,所以没有队列[root@slave1 ~]# rabbitmqctl list_queues -p web_developListing queues ......done.[root@slave1 ~]# rabbitmqctl list_usersListing users ...guest [administrator]yangyang []...done.
二、插件系统
RabbitMQ提供了强大的插件系统,当需要特定的功能而RabbitMQ没有时,可以查找相关的插件,例如插件可以实现如下功能:
- 管理和监控RabbitMQ
- 支持AMQP之外的协议
- 消息复制
- 新的路由算法和交换类型
官方插件地址: 安装插件方法
rabbitmq-plugins enable plugin-name
移除插件方法
rabbitmq-plugins disable plugin-name
查看插件列表方法
rabbitmq-plugins list
三、管理RabbitMQ
RabbitMQ提供Web管理程序,这个功能是通过插件rabbitmq_management实现的,安装如下:
rabbitmq-plugins enable rabbitmq_management
安装完成后需要重启rabbitmq-server 服务
systemctl restart rabbitmq-server
web服务的端口默认是15672,登录web页面之前需要给用户添加权限,管理插件时有五种权限。
名称 | 含义 |
---|---|
None | 什么都不做,新创建的用户默认没有登录管理页面的权限 |
management | 查看用户有权限访问的虚拟主机的队列、交换机、绑定、通道和连接等 |
policymaker | 除了management的权限外,还能查看、创建和删除策略和参数 |
monitoring | 除了management的权限外,还能查看其它用户的通道和连接、列出全部虚拟主机等 |
administrator | 最高权限 |
使用administrator权限:
[root@slave1 ~]# rabbitmqctl set_user_tags yangyang administratorSetting tags for user "yangyang" to [administrator] ......done.
这时从浏览器访问IP地址加上15672端口,用创建的用户登录,就可以看到web界面了
web界面支持如下操作:
- 服务器数据和统计预览。如最近一段时间的队列情况、当前连接数、当前队列数、内存占用、RabbitMQ版本、主机名等
- 导入/导出服务器配置
- 查看服务器连接
- 查看信道列表
- 查看交换机列表,添加新的交换机
- 查看队列,添加新的队列,修改队列绑定
- 查看用户列表,添加用户
- 查看虚拟主机,添加新的虚拟主机
- 列出策略,添加/更新策略
RabbitMQ插件rabbitmq_management,提供了REST API服务,也可以直接通过调用REST API来获取数据,具体参考文档: