必须要掌握的 RabbitMQ 操作命令

开发 前端
除了通过 Web 管理页面来进行管理之外,我们也可以通过命令行来进行管理,之前松哥在RabbitMQ 中的 VirtualHost 该如何理解一文中介绍过几个 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):

  1. http://localhost:25672/cli/index.html 

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

  1. 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.列出各种信息

查看所有交换机:

  1. rabbitmqadmin list exchanges 

查看所有队列:

  1. rabbitmqadmin list queues 

查看所有 Binding:

  1. rabbitmqadmin list bindings 

查看所有虚拟主机:

  1. rabbitmqadmin list vhosts 

查看所有用户信息:

  1. rabbitmqadmin list users 

查看所有权限信息:

  1. rabbitmqadmin list permissions 

查看所有连接信息:

  1. rabbitmqadmin list permissions 

查看所有通道信息:

  1. rabbitmqadmin list connections 

4. 一个完整的例子

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

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

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

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

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

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

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

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

这里涉及到到三个概念:

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

接下来发布一条消息:

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

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

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

  1. rabbitmqadmin get queue=javaboy-queue 

清空一个队列中的消息:

  1. rabbitmqadmin purge queue name=javaboy-queue 

5. 命令一览

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

6. 小结

 

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

 

责任编辑:武晓燕 来源: 江南一点雨
相关推荐

2019-12-27 15:05:11

LinuxWindowsDNS

2019-08-07 15:20:08

Git开源命令

2018-06-12 15:55:07

编程语言Java加密方式

2019-06-20 17:39:12

Android启动优化

2021-10-21 08:13:11

Springboot

2015-05-07 15:13:22

JS实现JQueryJQuery

2020-04-08 17:10:03

GitHub代码开源

2021-02-04 13:10:32

归并排序算法

2021-12-08 23:16:02

Windows 11Windows微软

2022-07-24 09:56:40

大数据技术

2019-04-09 08:15:27

SEO优化工具网站

2011-03-11 17:00:08

SQL

2019-07-19 16:15:20

Java日志命令

2009-12-22 09:48:57

必须掌握的CMD命令

2020-04-21 10:11:03

Python数据分析Pandas

2012-02-22 21:38:40

2019-09-20 21:30:32

前端工程师JavaScript

2022-09-30 08:16:38

令牌客户端隐藏式

2018-01-31 22:30:05

数据科学家数据专家工程师

2020-11-29 16:52:13

数据库SQL数据分析
点赞
收藏

51CTO技术栈公众号