文章目录

hmmzhtx

记录精彩的程序人生

X

RabbitMQ 简单使用

windows 安装-介绍

直接官网下载,安装RabbitMQ
进入安装目录,才能更好使用命令:/RabbitMQ Server\rabbitmq_server-3.7.17\sbin\

信息面板

默认端口:15672
想要打开管理页面,需要激活管理插件,激活 RabbitMQ's Management Plugin命令:
rabbitmqctl.bat enable rabbitmq_management

用戶相关命令:

新增一个用户:
rabbitmqctl.bat add_user username password
给 角色 变成 “超级管理员” 角色:
rabbitmqctl.bat set_user_tags username administrator
更改密码:
rabbitmqctl change_password userName newPassword
删除用户:
rabbitmqctl.bat delete_user username

虚拟主机(独立的空间)相关命令:

rabbitmqctl add_vhost <vhostpath>  
	#创建一个vhosts
rabbitmqctl delete_vhost <vhostpath>  
	#删除一个vhosts
rabbitmqctl list_vhosts [<vhostinfoitem> ...]  
	#列出vhosts

给角色设置权限

权限包含:配置权限、读权限、写权限
说明:将queue绑定到某exchange上,需要具有queue的可写权限,以及exchange的可读权限;向exchange发送消息需要具有exchange的可写权限;从queue里取数据需要具有queue的可读权限

用例:

设置用户名为test的用户就可以访问vitrual host为test_host的资源了,并且具备读写的权限。
rabbitmqctl set_permissions -p quna_test test  ConfP WriteP ReadP

权限相关命令为:

设置用户权限
rabbitmqctl  set_permissions  -p  VHostPath  User  ConfP  WriteP  ReadP
查看(指定hostpath)所有用户的权限信息
rabbitmqctl  list_permissions  [-p  VHostPath]
查看指定用户的权限信息
rabbitmqctl  list_user_permissions  User
清除用户的权限信息
rabbitmqctl  clear_permissions  [-p VHostPath]  User

相关概念

通常我们谈到队列服务, 会有三个概念: 发消息者、队列、收消息者,RabbitMQ 在这个基本概念之上, 多做了一层抽象, 在发消息者和 队列之间, 加入了交换器 (Exchange). 这样发消息者和队列就没有直接联系, 转而变成发消息者把消息给交换器, 交换器根据调度策略再把消息再给队列。
* 左侧 P 代表 生产者,也就是往 RabbitMQ 发消息的程序。
* 中间即是 RabbitMQ,其中包括了 交换机 和 队列。
* 右侧 C 代表 消费者,也就是往 RabbitMQ 拿消息的程序。 
那么,其中比较重要的概念有 4 个,分别为:虚拟主机,交换机,队列,和绑定。
* 虚拟主机:一个虚拟主机持有一组交换机、队列和绑定。为什么需要多个虚拟主机呢?很简单,RabbitMQ当中,用户只能在虚拟主机的粒度进行权限控制。 因此,如果需要禁止A组访问B组的交换机/队列/绑定,必须为A和B分别创建一个虚拟主机。每一个RabbitMQ服务器都有一个默认的虚拟主机“/”。
* 交换机:Exchange 用于转发消息,但是它不会做存储 ,如果没有 Queue bind 到 Exchange 的话,它会直接丢弃掉 Producer 发送过来的消息。 这里有一个比较重要的概念:路由键 。消息到交换机的时候,交互机会转发到对应的队列中,那么究竟转发到哪个队列,就要根据该路由键。
* 绑定:也就是交换机需要和队列相绑定,这其中如上图所示,是多对多的关系。