必须要掌握的 RabbitMQ 操作命令

文章目录

    • 1. rabbitmqadmin
    • 2. rabbitmqadmin 的功能
    • 3.列出各种信息
    • 4. 一个完整的例子
    • 5. 命令一览
    • 6. 小结

关于 RabbitMQ 的管理,我们可以通过网页来进行,在松哥前面的文章中也和小伙伴们做了相关的介绍了:

  • RabbitMQ 管理页面该如何使用

除了通过 Web 管理页面来进行管理之外,我们也可以通过命令行来进行管理,之前松哥在RabbitMQ 中的 VirtualHost 该如何理解一文中介绍过几个 RabbitMQ 管理命令。

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

1. rabbitmqadmin

我们自己平时做练习,一般都会开启 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

必须要掌握的 RabbitMQ 操作命令_第1张图片

在打开的页面中就可以看到 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

必须要掌握的 RabbitMQ 操作命令_第2张图片

查看所有队列:

rabbitmqadmin list queues

必须要掌握的 RabbitMQ 操作命令_第3张图片

查看所有 Binding:

rabbitmqadmin list bindings

必须要掌握的 RabbitMQ 操作命令_第4张图片

查看所有虚拟主机:

rabbitmqadmin list vhosts

必须要掌握的 RabbitMQ 操作命令_第5张图片

查看所有用户信息:

rabbitmqadmin list users

必须要掌握的 RabbitMQ 操作命令_第6张图片

查看所有权限信息:

rabbitmqadmin list permissions

必须要掌握的 RabbitMQ 操作命令_第7张图片

查看所有连接信息:

rabbitmqadmin list connections

必须要掌握的 RabbitMQ 操作命令_第8张图片

查看所有通道信息:

rabbitmqadmin list channels

必须要掌握的 RabbitMQ 操作命令_第9张图片

4. 一个完整的例子

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

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

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

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

接下来创建一个名为 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

5. 命令一览

表格字体有点小,大家在公众号【江南一点雨】后台回复 rabbitmqadmin 获取 Excel 文档链接。

必须要掌握的 RabbitMQ 操作命令_第10张图片

6. 小结

好啦,今天就和小伙伴们简单介绍了一下 rabbitmqadmin,一个简单的 Python 脚本,感兴趣的小伙伴可以去试试哦~

你可能感兴趣的:(关于Spring,Boot,rabbitmq,分布式,java)