当前位置: 首页 > news >正文

RabbitMq 常用命令和REST API

服务管理相关

启动: service rabbitmq-server start 或 rabbitmq-service start
关闭: service rabbitmq-server stop 或 rabbitmq-service stop
重启: service rabbitmq-server restart
查看状态: rabbitmqctl status

用户相关

创建用户

后面2个参数是用户名和密码

rabbitmqctl add_user userName password
修改密码
rabbitmqctl change_password userName newPassword
校验密码

校验账号和密码是否匹配

rabbitmqctl authenticate_user userName "password"
  • 若校验正确会打印出Success的字样
  • 若校验失败(账号或密码错误)会打印出Error的字样
展示所有用户

除了用户名之外,还会显示每个用户所属的角色

rabbitmqctl list_users
删除用户
rabbitmqctl delete_user userName
清除密码
rabbitmqctl clear_password {userName}

角色相关

用户角色可通过命令:rabbitmqctl list_users查看

rabbitmq角色有以下几个:

  1. 超级管理员(administrator):可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作
  2. 监控者(monitoring): 可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
  3. 策略制定者(policymaker): 可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
  4. 普通管理者(management): 仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
  5. policymaker:包含managerment所有权限,并且可以管理策略(Policy)和参数(Parameter)
  6. none:无角色, 无法登陆管理控制台,通常就是普通的生产者和消费者。
设置用户角色

将userName设为administartor角色,当角色不存在时,会自动创建角色,一个用户只能有一个角色;

在设置角色时administartor后面不能有空格,否则空格也算是一个字符,rabbitmq不会忽略空格

rabbitmqctl set_user_tags userName administartor

设置多个角色(无效:设置后不是2个权限,而是一个权限,权限名称为:monitoring policymaker)

rabbitmqctl set_user_tags userName monitoring policymaker

Vhost管理

查看所有虚拟主机:rabbitmqctl list_vhosts
添加虚拟主机:rabbitmqctl add_vhost vhostname
删除虚拟主机:rabbitmqctl delete_vhost vhostname

权限管理

设置用户权限

-p / 表示指定vHosts

rabbitmqctl set_permissions -p / root ".*" ".*" ".*"
查看用户权限

查看所有已设置了权限的用户(无权限的用户不展示)

rabbitmqctl list_user_permissions

查看指定用户的权限

rabbitmqctl list_user_permissions username

清除用户权限

-p / 表示指定vHosts

rabbitmqctl clear_permissions -p / username

web管理相关

开启/关闭web管理页面
# 开启web管理页面
rabbitmq-plugins enable rabbitmq_management# 关闭web管理页面
rabbitmq-plugins disable rabbitmq_management

插件相关

查看插件

rabbitmq-plugins list

应用管理

应用和节点都关闭 :rabbitmqctl stop
关闭应用:rabbitmqctl stop_app
启动应用:rabbitmqctl start_app

队列管理

查看所有队列
rabbitmqctl list_queues
清除所有队列

清楚之前需要先执行rabbitmqctl stop_app命令

rabbitmqctl reset
强制清除队列
rabbitmqctl force_reset

集群管理

查看集群状态: rabbitmqctl cluster_status
摘除节点: rabbitmqctl forget_cluster_node [--offline]
组成集群命令: rabbitmqctl join_cluster <clusternode> [--ram]
修改节点存储形式: rabbitmqctl change_cluster_node_type disc | ram
修改节点名称: rabbitmqctl rename_cluster_node oldnode1 newnode1 [oldnode2 newnode2] [oldnode3 newnode3...]

信息查看

查看所有连接:rabbitmqadmin list connections
概览 Overview: rabbitmqadmin show overview
查看所有节点 Node:rabbitmqadmin list nodes
查看所有通道 Channel:rabbitmqadmin list channels
查看所有消费者 Consumer:rabbitmqadmin list consumers
查看所有路由 Exchange:rabbitmqadmin list exchanges
查看所有路由与队列的关系绑定 Binding:rabbitmqadmin list bindings

rabbitmqadmin 命令

  • -u:用户名
  • -p:密码
查询命令

查看所有的交换机:rabbitmqadmin -u root -p woaini list exchanges
查看所有的队列:rabbitmqadmin -u root -p woaini list queues
查看所有的交换机和队列的绑定关系:rabbitmqadmin -u root -p woaini list bindings
查看所有的用户:rabbitmqadmin -u root -p woaini list users
查看所有的权限信息:rabbitmqadmin -u root -p woaini list permissions
查看所有的连接信息:rabbitmqadmin -u root -p woaini list connections
查看所有的通道信息:rabbitmqadmin -u root -p woaini list channels

创建交换机
  • name:交换机名称
  • durable:是否持久化
  • auto_delete:是否自动删除
  • type:交换机类型
rabbitmqadmin  -u root -p woaini declare exchange name=exchange_name_1 durable=true auto_delete=false type=direct
创建队列
rabbitmqadmin  -u root -p woaini declare queue name=queue_name_1 durable=true auto_delete=false
绑定队列和交换机
  • source:需要绑定的交换机名称
  • destination:(目标)需要绑定的队列名称

执行前必须先创建队列和交换机,否则会报错:*** Not found: /api/bindings/%2F/e/exchange_name_1/q/queue_name_1
在 direct 交换机下,队列名称和routingKey名称必须一致,否则发送消息时无法路由

rabbitmqadmin -u root -p woaini declare binding source=exchange_name_1 destination=queue_name_1 routing_key=queue_name_1
发送消息
rabbitmqadmin -u root -p woaini publish routing_key=routing_key_1 payload="hello yexindong"
查看队列中的消息

可以查看到刚刚发送的消息

rabbitmqadmin -u root -p woaini get queue=queue_name_1
其他命令
命令解释
rabbitmqadmin list users查看所有用户 User
rabbitmqadmin list users name查看所有用户名 Username
rabbitmqadmin list users tags查看所有用户角色
rabbitmqadmin list vhosts查看所有虚拟主机
rabbitmqadmin list connections查看所有连接
rabbitmqadmin list exchanges查看所有路由 Exchange
rabbitmqadmin list bindings查看所有路由与队列的关系绑定 Binding
rabbitmqadmin list permissions查看所有角色的权限 Permission
rabbitmqadmin list channels查看所有通道 Channel
rabbitmqadmin list consumers查看所有消费者 Consumer
rabbitmqadmin list queues查看所有消息队列 Queue
rabbitmqadmin list nodes查看所有节点 Node
rabbitmqadmin show overview概览 Overview
rabbitmqadmin list bindings source destination_type destination properties_key查看所有路由与队列的关系绑定的详细信息 Binding
rabbitmqadmin declare queue name=test durable=true定义一个队列queue,durable=true代表持久化打开。
rabbitmqadmin declare exchange name=my.fanout type=fanout定义一个Fanout路由
rabbitmqadmin declare exchange name=my.direct type=direct定义一个Direct路由
rabbitmqadmin declare exchange name=my.topic type=topic定义一个Topic路由
rabbitmqadmin declare binding source=my.fanout destination=test routing_key=first定义 binding
rabbitmqadmin publish routing_key=test payload=“hello world”发布一条消息
rabbitmqadmin publish routing_key=my.test exchange=my.topic payload=“hello world”使用路由转发消息
rabbitmqadmin get queue=test requeue=true查看消息,不消费
rabbitmqadmin get queue=test requeue=false查看消息,并消费
rabbitmqadmin purge queue name=test删除队列中的所有消息
rabbitmqadmin delete queue name=hello删除消息队列 Queue
rabbitmqadmin delete user name=test删除用户 User
rabbitmqadmin delete exchange name=test删除路由器 Exchange
rabbitmqadmin delete binding source=‘kk’ destination_type=queue destination=test properties_key=test删除路由器与消息队列的关系绑定 Binding
rabbitmqadmin -f raw_json list usersraw_json 格式化输出
rabbitmqadmin -f long list users格式化输出
rabbitmqadmin -f pretty_json list users pretty_json格式化输出
rabbitmqadmin -f kvp list users格式化输出
rabbitmqadmin -f tsv list users格式化输出
rabbitmqadmin -f table list userstable 格式化输出
rabbitmqadmin -f bash list usersbash 格式化输出

REST API

查看所有队列统计数据

-i 表示显示响应头信息。
-u 指定用户密码

curl -i -u root:woaini http://localhost:15672/api/queues
查看虚拟主机 myvh 下 hello-queue 队列的数据统计
curl -i -u root:woaini http://localhost:15672/api/queues/myvh/hello-queue
查看虚拟主机 / 下 hello-queue 队列的数据统计

需要将 / 进行转义后结果为:%2f

curl -i -u root:woaini http://localhost:15672/api/queues/%2f/hello-queue
创建队列

在 /myvh 虚拟主机下创建一个名为 javaboy-queue 的队列

curl -i -u root:woaini  -XPUT -H "Content-Type:application/json" -d '{"auto_delete":false,"durable":true}' http://localhost:15672/api/queues/myvh/javaboy-queue
查看当前连接信息
curl -i -u root:woaini  http://localhost:15672/api/connections
查看当前用户信息
curl -i -u root:woaini http://localhost:15672/api/users
创建用户

创建一个名为 zhangsan,密码是 123 ,角色是 administrator 的用户。

curl -i -u root:woaini -H "{Content-Type:application/json}" -d '{"password":"123","tags":"administrator"}' -XPUT http://localhost:15672/api/users/zhangsan
为新用户设置 vhost

将名为 zhangsan 的用户设置到名为 myvh 的 vhost 下:

curl -i -u root:woaini -H "{Content-Type:application/json}" -d '{"configure":".*","write":".*","read":".*"}' -XPUT http://localhost:15672/api/permissions/myvh/zhangsan
http://www.xdnf.cn/news/1195687.html

相关文章:

  • 商品中心—1.B端建品和C端缓存
  • Python-初学openCV——图像预处理(四)——滤波器
  • 命令行和neovim的git操作软件-lazygit
  • sealos 方式安装k8s5节点集群
  • 自动标注软件X-AnyLabeling的使用教程
  • 基于动态增强的 LLM 置信度方法研究
  • C语言中:形参与实参的那些事
  • [SAP ABAP] ALV报表练习4
  • Matlab自学笔记六十五:解方程的数值解法(代码速成)
  • 文件IO——bmp图像处理
  • 磁悬浮轴承转子不平衡质量控制策略设计:原理、分析与智能实现
  • 基于java的在线教育平台管理系统、在线学习系统的设计与实现
  • 零基础学习性能测试第三章:jmeter性能组件应用(事件,并发,定时器)
  • 哈尔滨←→南昌的铁路要道
  • AWD的攻击和防御手段
  • idea中无法删除模块,只能remove?
  • 2025年7月26日训练日志
  • 最优估计准则与方法(4)最小二乘估计(LS)_学习笔记
  • 幸福网咖订座点餐小程序的设计与实现
  • element-plus安装以及使用
  • 《基于雅可比矢量近似的EIT触觉传感灵敏度非均匀校正》论文解读
  • 微分方程入门之入门之入门,纯笔记
  • 实现网页访问/接口调用KernelMemory
  • S7-200 SMART 数字量 I/O 组态指南:从参数设置到实战案例
  • Ubuntu系统 系统盘和数据盘扩容具体操作
  • C++类和对象(三)
  • Coze 与 Dify 深度对比:2025 年 AI 智能体平台选型指南
  • VMware Workstation17下安装Ubuntu20.04
  • JVM-GC 相关知识
  • 利用RAII与析构函数避免C++资源泄漏