绑定、默认是没有任何权限的
发布时间:2025-06-24 19:06:58 作者:北方职教升学中心 阅读量:095
配置权限会影响到exchange,queue的声明和删除。具体原因包括:
认证和安全性: RabbitMQ 使用
.erlang.cookie
文件来验证节点之间的身份。交换器、rabbitmqctl list_queues
查看运行信息
rabbitmqctl status
三.RabbitMQ集群
RabbitMQ本身是基于Erlang编写的,Erlang天生支持分布式(通过同步Erlang集群各节点的cookie来实现),因此不需要像Kafka那样通过ZooKeeper来实现分布式集群。
1.元数据
RabbitMQ内部有各种基础构件,包括队列、
(4)普通管理者(management)
仅可登录管理控制台(启动management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
二.Rabbitmq常用命令
1.虚拟机管理
列出所有虚拟机——rabbitmqctl list_vhosts
创建虚拟主机——rabbitmqctl add_vhost 主机名
删除虚拟主机——rabbitmqctl delete_vhost 主机名
2.用户管理
列出用户——rabbitmqctl list_users
创建用户——rabbitmqctl add_user 用户名 密码
更改用户密码——rabbitmqctl change_password 用户名 新密码
删除用户——rabbitmqctl delete_user 用户名
清除用户密码——rabbitmqctl clear_password 用户名
3.tags角色介绍
(1)超级管理员(administrator):guest
可登录管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。在管理RabbitMQ应用时需要停止rabbitmq,但是又要使用erlang对rabbitmq进行管理。
(2)监控者(monitoring)
可登录管理控制台(启用 managem plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
(3)策略制定者(policymaker)
可登录管理控制台(启用management plugin的情况下),同时可以对policy进行管理。它基于erlang开发,天生拥有高并发的能力。绑定、默认是没有任何权限的。
rabbitmqctl list_user_permissions <username>
#列出某用户的权限,即该用户对哪个虚拟主机有权限
rabbitmqctl list_permissions -p <vhostname>
#列出指定虚拟主机下所有用户的权限,即哪些用户对该虚拟主机有权限
rabbitmqctl clear_permissions -p <vhostname> <user>
#清除某用户在指定虚拟机上的授权
4.插件管理
查看插件列表——rabbit-plugins list
安装插件——rabbit-plugins enable 插件名
卸载插件——rabbit-plugins disable 插件名
5.限制
设置虚拟主机的最大连接数
rabbitmqctl set_vhost_limits -p vhost_name '{"max-connections": 256}'
不允许客户端连接虚拟主机
rabbitmqctl set_vhost_limits -p vhost_name '{"max-connections": 0}'
不限制连接数
rabbitmqctl set_vhost_limits -p vhost_name '{"max-connections": -1}'
限制虚拟主机里最大的队列数
abbitmqctl set_vhost_limits -p vhost_name '{"max-queues": 1024}'
不限制队列数
rabbitmqctl set_vhost_limits -p vhost_name '{"max-queues": -1}'
6.其他
列出所有的交换器
rabbitmqctl list_exchanges
列出所有的绑定,即把exchange和queue按照路由规则绑定起来
rabbitmqctl list_bindings
分别查看当前系统种存在的Exchange和Exchange上绑定的Queue信息。重新启动节点可以确保它们加载新的
.erlang.cookie
文件,避免这种问题。如果节点间的.erlang.cookie
文件不一致,节点可能会拒绝彼此的连接或通信。4.交换器
类似于网络设备交换机,它可以根据不同的关键字,将消息发送到不同的队列
5.虚拟主机
虚拟主机类似于Apache的虚拟主机,如果没有虚拟机,当RabbitMQ中的数据越来越庞大,队列越来越多,随之而来的是令人头痛的管理问题,比如队列,交换器命名冲突,它们相互影响等等。
一.RabbitMQ相关术语
1.生产者
生产消息的进程或服务
2.消费者
接收消息的进程或服务
3.队列
RabbitMQ是消息队列中间件,而真正存储信息数据的就是队列,队列可以有很多。
将centos02作为内存节点连接到centos01
[root@localhost ~]# rabbitmqctl join_cluster --ram rabbit@mq01
开启rabbitmq
[root@localhost ~]# rabbitmqctl start_app
查看集群状态
[root@localhost ~]# rabbitmqctl cluster_status