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

基本概念
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;
总之具有最高权限的角色。

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

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

queue队列,存放消息的具体队列。
binding绑定,exchange与queue一种绑定关系,包含消息转发的路由信息等。

第二部分:常用命令
用户命令:

1.添加用户
$ rabbitmqctl add_user username password
2.删除用户
$ rabbitmqctl delete_user username
3.修改密码
$ rabbitmqctl change_password username newpassword
4.列出所有用户
$rabbitmqctl list_users
5.设置用户权限 [-p vhostpath] 是指设置用户在某个虚拟机上的权限
$ rabbitmqctl set_permissions [-p vhostpath] username regexp regexp regexp
示例:
$ rabbitmqctl set_permissions -p /vhostname username "." "." ".*"
6.清除用户权限
$ rabbitmqctl clear_permissions [-p vhostpath] username
7.列出用户权限
$ rabbitmqctl list_user_permissions username
8.设置用户角色 tagsName解释
$ rabbitmqctl set_user_tags username tagsname

应用和集群管理:

  1. 关闭节点
    $ rabbitmqctl stop_app
  2. 开启节点
    $ rabbitmqctl start_app
  3. 重置节点
    $ rabbitmqctl reset
  4. 改变节点类型(disc|ram)
    $ rabbitmqctl change_cluster_node_type ram
  5. 启动监控插件
    $ rabbitmq-plugins enable rabbitmq_management
  6. 删除队列消息插件
    $ rabbitmq-plugins enable rabbitmq_shovel rabbitmq_shovel_management
  7. 查看已安装的插件列表
    $ rabbitmq-plugins list
  8. 禁用插件
    $ rabbitmq-plugins disable plugin_name
  9. 查看集群状态
    $ rabbitmqctl cluster_status
  10. 查看节点状态
    $ rabbitmqctl status
  11. 启动服务
    $ rabbitmq-server
    或以后台进程启动,即使退出xshell客户端,服务不会退出
    $ rabbitmq-server -detached

队列命令:

1.返回queue的信息,如果省略了-p参数,则默认显示的是"/"vhosts的信息。
$ rabbitmqctl list_queues [-p ] [ ...]
2.返回exchange的信息。
$ rabbitmqctl list_exchanges [-p ] [ ...]
3.返回绑定信息
$ rabbitmqctl list_bindings [-p ] [ ...]
4.返回链接信息
$ rabbitmqctl list_connections [ ...]
5.返回目前所有的
$ rabbitmqctl channels list_channels [ ...]
6.返回consumers
$ rabbitmqctl list_consumers [-p ]
7.显示broker的状态 environment #显示环境参数的信息 report #返回一个服务状态report
$ rabbitmqctl status
8.清除队列
$ rabbitmqctl reset

虚拟机命令:

1.创建虚拟主机
$ rabbitmqctl add_vhost vhostpath
2.删除虚拟主机
$ rabbitmqctl delete_vhost vhostpath
3.列出所有虚拟主机
$ rabbitmqctl list_vhosts
4.列出虚拟主机上的所有权限
$ rabbitmqctl list_permissions [-p vhostpath]

其他命令,请参考官方指引

已有 8 条评论
  1. cgsywvsysy
    cgsywvsysy :

    选材新颖独特,通过细节描写赋予主题鲜活生命力。

  2. mosqbyozas
    mosqbyozas :

    建议控制调侃频率,避免消解主题深度。

  3. trceirobqc
    trceirobqc :

    文章的叙述风格独特,用词精准,让人回味无穷。

  4. nrbakwhyte
    nrbakwhyte :

    文章深入浅出,既有深度思考,又不乏广度覆盖,令人叹为观止。

  5. gltjafwstl
    gltjafwstl :

    独特的构思和新颖的观点,让这篇文章在众多作品中脱颖而出。

  6. dafhuqlwmu
    dafhuqlwmu :

    文章紧扣主题,观点鲜明,展现出深刻的思考维度。

  7. ywwqzaagdi
    ywwqzaagdi :

    这篇文章不错!