第一部分: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
应用和集群管理:
- 关闭节点
$ rabbitmqctl stop_app - 开启节点
$ rabbitmqctl start_app - 重置节点
$ rabbitmqctl reset - 改变节点类型(disc|ram)
$ rabbitmqctl change_cluster_node_type ram - 启动监控插件
$ rabbitmq-plugins enable rabbitmq_management - 删除队列消息插件
$ rabbitmq-plugins enable rabbitmq_shovel rabbitmq_shovel_management - 查看已安装的插件列表
$ rabbitmq-plugins list - 禁用插件
$ rabbitmq-plugins disable plugin_name - 查看集群状态
$ rabbitmqctl cluster_status - 查看节点状态
$ rabbitmqctl status - 启动服务
$ 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]
其他命令,请参考官方指引
选材新颖独特,通过细节描写赋予主题鲜活生命力。
建议控制调侃频率,避免消解主题深度。
文章的叙述风格独特,用词精准,让人回味无穷。
?叙事类评语?
文章深入浅出,既有深度思考,又不乏广度覆盖,令人叹为观止。
独特的构思和新颖的观点,让这篇文章在众多作品中脱颖而出。
文章紧扣主题,观点鲜明,展现出深刻的思考维度。
这篇文章不错!