rabbitmq 概念及常用命令

前言

在rabbitmq中,有vhost虚拟主机,exchange交换机,queue队列,binding绑定,policy策略,tag用户角色等概念,本篇主要介绍rabbitmq中基本概念及常用操作命令。

基本概念

1. tag 用户角色,主要有5种角色:none,management,policymaker,monitoring,administrator。

none:用户可以通过AMQP做的任何事,但不能访问 management plugin即不能登录管理系统。

management:none所有权限,
查看和删除自己的virtual hosts中的queues, exchanges 和 bindings;
查看和关闭自己的channels 和 connections。
查看有关自己的virtual hosts的“全局”的统计信息。

policymaker:management所有权限,
查看、创建和删除自己的virtual hosts所属的policies和parameters。

monitoring:management所有权限,
列出所有virtual hosts;
查看其他用户的connections和channels;
查看节点级别的数据如clustering和memory使用情况;
查看所有virtual hosts的全局的统计信息;

administrator:policymaker和monitoring的所有权限,
创建和删除virtual hosts;
查看、创建和删除users;
查看创建和删除permissions;
关闭其他用户的connections;
总之具有最高权限的角色。

2. vhost虚拟主机,一个虚拟主机可以包含一组exchange,queue,binding等,
起到相互隔离的作用,我们可以针对不同的业务系统定义不同的虚拟主机vhost,这样不同的业务系统走不同的vhost,相互隔离。

3. exchange:交换机,和queue搭配使用,负责将消息按规则转发到匹配的queue。有四种使用模式:fanout模式 ,direct模式,topic模式,header模式。

4. queue队列,存放消息的具体队列。

5. binding绑定,exchange与queue一种绑定关系,包含消息转发的路由信息等。

常用命令

1. 添加用户
./rabbitmqctl add_user username pwd
2. 设置用户administrator角色
./rabbitmqctl set_user_tags username administrator
3. 设置用户权限
./rabbitmqctl set_permissions -p /vhostname username ".*" ".*" ".*"
4. 修改用户密码
./rabbitmqctl change_password username 123456
5. 列出所有用户
./rabbitmqctl list_users
6. 删除用户
./rabbitmqctl delete_user username
7. 添加虚拟主机
./rabbitmqctl add_vhost vhostname
8. 删除虚拟主机
./rabbitmqctl delete_vhost vhostname
9. 列出所有虚拟主机
./rabbitmqctl list_vhosts
10. 关闭节点
./rabbitmqctl stop_app
11. 开启节点
./rabbitmqctl start_app
12. 重置节点
./rabbitmqctl reset
14. 改变节点类型(disc|ram)
./rabbitmqctl change_cluster_node_type ram
15. 启动监控插件
./rabbitmq-plugins enable rabbitmq_management
16. 删除队列消息插件
./rabbitmq-plugins enable rabbitmq_shovel rabbitmq_shovel_management
17. 查看已安装的插件列表
./rabbitmq-plugins list
18. 禁用插件
./rabbitmq-plugins disable plugin_name
19. 查看集群状态
./rabbitmqctl cluster_status
20. 查看节点状态
./rabbitmqctl status
21. 启动服务
./rabbitmq-server
或以后台进程启动,即使退出xshell客户端,服务不会退出
./rabbitmq-server -detached

参考链接

  1. https://www.rabbitmq.com/getstarted.html
  2. http://www.rabbitmq.com/management.html
  3. https://www.rabbitmq.com/plugins.html