RabbitMQ常见操作命令

RabbitMQ 管理页面该如何使用

除了通过 Web 管理页面来进行管理之外,我们也可以通过命令行来进行管理。

也在另类玩法!使用 REST API 操作 RabbitMQ一文中介绍过一些相关的 REST API,在方便发送 HTTP 请求的地方调用这些 REST API,还是非常方便的。但是,在一些不方便发送 HTTP 请求的地方,这些 REST API 用着并不太方便,那么今天就给大家再来介绍 RabbitMQ 的另一种玩法---rabbitmqadmin。

1. rabbitmqadmin

我们自己平时在java培训做练习,一般都会开启 RabbitMQ 的 Web 管理页面,然而在生产环境下,经常是没有 Web 管理页面的,只能通过 CLI 命令去管理 MQ。

其实呀,Web 管理页面虽然友好,但是很多时候没有 CLI 快捷,而且通过 CLI 命令行的操作,我们可以做更多的定制,例如将关键信息查出来后提供给集中的监控系统以触发报警。

直接操作 CLI 命令行有点麻烦,RabbitMQ 提供了 CLI 管理工具 rabbitmqadmin ,其实就是基于 RabbitMQ 的 HTTP API,用 Python 写的一个脚本。因为 REST API 手动写请求还是挺麻烦的,这些脚本刚好替我们简化了这个操作,让这个事情变得更加简单了。

使用 rabbitmqadmin 要先会安装它。

如果我们创建 RabbitMQ 容器的时候使用的是 rabbitmq:3-management 镜像,那么默认情况下,rabbitmqadmin 就是安装好的。

否则可能需要我们自己安装 rabbitmqadmin,安装方式很简单,

首先确认你的设备上安装了 Python,这是最基本的,因为 rabbitmqadmin 这个工具就是 Python 脚本。

然后开启 RabbitMQ 的 Web 管理页面,然后输入如下地址(我的管理页面度那口映射为 25672):http://localhost:25672/cli/index.html

在打开的页面中就可以看到 rabbitmqadmin 的下载链接。将 rabbitmqadmin 下载下来后,然后赋予其可执行权限即可:

chmod +x rabbitmqadmin

下载后的 rabbitmqadmin 我们可以直接用记事本打开,里边其实就是一堆 Python 脚本。

这套流程操作下来还是挺麻烦的,所以,我建议大家直接使用 rabbitmq:3-management 镜像,一步到位。

2. rabbitmqadmin 的功能

  • 列出 exchanges, queues, bindings, vhosts, users, permissions, connections and channels。
  • 创建和删除 exchanges, queues, bindings, vhosts, users and permissions。
  • 发布和获取消息,以及消息详情。
  • 关闭连接和清空队列。
  • 导入导出配置。

接下来松哥就这些功能逐一和小伙伴们进行介绍。

3.列出各种信息

查看所有交换机:

rabbitmqadmin list exchanges

查看所有队列:

rabbitmqadmin list queues

查看所有 Binding:

rabbitmqadmin list bindings

查看所有虚拟主机:

rabbitmqadmin list vhosts

查看所有用户信息:

rabbitmqadmin list users

查看所有权限信息:

rabbitmqadmin list permissions

查看所有连接信息:

rabbitmqadmin list connections

查看所有通道信息:

rabbitmqadmin list channels

4. 一个完整的例子

接下来我们用 rabbitmqadmin 来写一个完整的消息收发例子看看。

首先创建一个名为 javaboy-exchange 的交换机:

rabbitmqadmin declare exchange name=javaboy-exchange durable=true auto_delete=false type=direct

这里各种参数都好理解,java培训我就不多说了。

接下来创建一个名为 javaboy-queue 的队列:

rabbitmqadmin declare queue name=javaboy-queue durable=true auto_delete=false

接下来再创建一个 Binding,将交换机和消息队列绑定起来:

rabbitmqadmin declare binding source=javaboy-exchange destination=javaboy-queue routing_key=javaboy-routing

这里涉及到到三个概念:

  • source:源,其实就是指交换机。
  • destination:目标,其实就是指消息队列。
  • routing_key:这个就是路由的 key。

接下来发布一条消息:

rabbitmqadmin publish routing_key=javaboy-queue payload="hello javaboy"

这里参数都很简单,没啥好说的。

查看队列中的消息(只查看,不消费,看完之后消息还在):

rabbitmqadmin get queue=javaboy-queue

清空一个队列中的消息:

rabbitmqadmin purge queue name=javaboy-queue
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RabbitMQ 是一个开源的消息队列系统,常用于分布式应用之间的通信。以下是一些常用命令,它们可以帮助你管理和监控 RabbitMQ 集群: 1. ** rabbitmq-plugins list **:列出所有安装的 RabbitMQ 插件。 2. ** rabbitmq-server start/stop/restart **:启动、停止或重启 RabbitMQ 服务器。 3. ** rabbitmqctl status **:检查 RabbitMQ 服务的状态。 4. ** rabbitmqctl list_users **:查看当前用户列表。 5. ** rabbitmqctl add_user [username] [password] **:添加新用户。 6. ** rabbitmqctl set_user_tags [username] administrator **:设置用户角色(如管理员)。 7. ** rabbitmqctl create_vhost [vhost_name] **:创建虚拟主机。 8. ** rabbitmqctl delete_vhost [vhost_name] **:删除虚拟主机。 9. ** rabbitmqctl list_vhosts **:列出所有虚拟主机。 10. ** rabbitmq-plugins enable [plugin_name] **:启用插件。 11. ** rabbitmqctl list_exchanges [vhost_name] [--tree] **:查看交换机(包括树形结构)。 12. ** rabbitmqctl declare_exchange [exchange_name] [type] [vhost_name] **:声明交换机。 13. ** rabbitmqctl declare_queue [queue_name] [vhost_name] [--durable] [--auto_delete] **:声明队列。 14. ** rabbitmqctl bind_queue [queue_name] [exchange_name] [routing_key] [vhost_name] **:绑定队列到交换机。 15. ** rabbitmqctl consume [queue_name] [consumer_tag] [--no_ack] **:消费消息。 16. ** rabbitmqctl cancel_consumer [consumer_tag] **:取消消费者。 这些命令需要在控制台上输入,并且通常在拥有管理权限的用户环境下运行。注意,生产环境中的操作应谨慎,避免误删或影响正常服务。如果你需要更详细的信息,可以查阅 RabbitMQ 的官方文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值