一、虚拟主机
 RabbitMQ服务器可以创建虚拟主机,它能拥有自己的队列、绑定和交换机,就像一个有自己的权限机制的迷你版RabbitMQ,不同的虚拟主机之间完全隔离,上篇例子都是基于默认的虚拟主机“/”,用的默认的guest用户和密码,项目上线时,默认的guest用户应该删除,取消管理员权限或者改变密码。下面创建自己的用户和虚拟主机,并赋予权限。
 [root@slave1 ~]# rabbitmqctl  add_user yangyang 123456 Creating user "yangyang" ... ...done. [root@slave1 ~]# rabbitmqctl add_vhost web_develop Creating 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_vhosts Listing vhosts ... / web_develop ...done. # 还没有声明,所以没有队列 [root@slave1 ~]# rabbitmqctl  list_queues -p web_develop Listing queues ... ...done. [root@slave1 ~]# rabbitmqctl  list_users Listing users ... guest	[administrator] yangyang	[] ...done.  
 二、插件系统
 RabbitMQ提供了强大的插件系统,当需要特定的功能而RabbitMQ没有时,可以查找相关的插件,例如插件可以实现如下功能:
  - 管理和监控RabbitMQ
- 支持AMQP之外的协议
- 消息复制
- 新的路由算法和交换类型
官方插件地址:http://www.rabbitmq.com/plugins.html 安装插件方法
 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 administrator Setting tags for user "yangyang" to [administrator] ... ...done.  
 这时从浏览器访问IP地址加上15672端口,用创建的用户登录,就可以看到web界面了 
 web界面支持如下操作:
  - 服务器数据和统计预览。如最近一段时间的队列情况、当前连接数、当前队列数、内存占用、RabbitMQ版本、主机名等
- 导入/导出服务器配置
- 查看服务器连接
- 查看信道列表
- 查看交换机列表,添加新的交换机
- 查看队列,添加新的队列,修改队列绑定
- 查看用户列表,添加用户
- 查看虚拟主机,添加新的虚拟主机
- 列出策略,添加/更新策略
RabbitMQ插件rabbitmq_management,提供了REST API服务,也可以直接通过调用REST API来获取数据,具体参考文档: http://www.rabbitmq.com/management.html