当前位置: 代码网 > it编程>编程语言>Java > RabbitMq 常用命令和REST API详解

RabbitMq 常用命令和REST API详解

2025年07月28日 Java 我要评论
服务管理相关启动: service rabbitmq-server start 或 rabbitmq-service start关闭: service rabbitmq-server stop 或 r

服务管理相关

启动: 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

到此这篇关于rabbitmq 常用命令和rest api详解的文章就介绍到这了,更多相关rabbitmq 命令和rest api内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com