RabbitMQ CLI 管理工具 rabbitmqadmin(管理和监控)

插个广告,公司最近在招“.NET”开发(杭州),如果你现在还从事 .NET 开发(想用 .NET Core,但被公司不认可),想转 JAVA 开发(但又没有工作经验,惧怕面试),想用微服务架构重构(面对现有庞大的单体应用程序,有心无力),那么请关注右侧的公众号私信我,或许我可以帮到你一些~~~

一般情况下,我们会使用 rabbitmq_management 插件,通过 Web UI 的方式来监控和操作 RabbitMQ(端口 15672),但有时候命令的方式会更加方便一些,RabbitMQ 提供了 CLI 管理工具 rabbitmqadmin ,其实就是基于 RabbitMQ 的 HTTP API,用 Python 写的一个脚本。

另外,除了 rabbitmqadmin ,有个人也写了一个 rabbitmq-dump-queue 脚本,用于抓取 Queue 队列,用文件进行存储,但使用下来,感觉还是官方的 rabbitmqadmin 比较好些。

rabbitmqadmin 提供了下面功能:

列出 exchanges, queues, bindings, vhosts, users, permissions, connections and channels。

创建和删除 exchanges, queues, bindings, vhosts, users and permissions。

发布和获取消息,以及消息详情。

关闭连接和清空队列。

导入导出配置。

使用 rabbitmqadmin 的时候,我们需要理解 RabbitMQ 的基本概念,先回顾一下:

RabbitMQ 概念:

概念 详解
Exchange   消息交换机,它指定消息按什么规则,路由到哪个队列  
Queue   消息队列,每个消息都会被投入到一个或多个队列  
Binding   绑定,它的作用就是把 exchange 和 queue 按照路由规则绑定起来  
Routing Key   路由关键字,exchange 根据这个关键字进行消息投递  
Vhost   虚拟主机,可以开设多个 vhost,用作不同用户的权限分离  
Producer   消息生产者,就是投递消息的程序  
Consumer   消息消费者,就是接受消息的程序  
Channel   消息通道,在客户端的每个连接里,可建立多个 channel,每个 channel 代表一个会话任务  

RabbitMQ 流程:

RabbitMQ CLI 管理工具 rabbitmqadmin(管理和监控)

RabbitMQ 投递过程:

1. 客户端连接到消息队列服务器,打开一个 channel。

2. 客户端声明一个 exchange,并设置相关属性。

3. 客户端声明一个 queue,并设置相关属性。

4. 客户端使用 routing key,在 exchange 和 queue 之间建立好绑定关系。

5. 客户端投递消息到 exchange。

6. 客户端从指定的 queue 中消费信息。

不理解?没关系,看下面。

接下来,我们就用 rabbitmqadmin ,来演示上面 RabbitMQ 投递过程。

如果我们安装了rabbitmq_management插件,可以打开:15672/cli/页面,下载 rabbitmqadmin。

或者直接进行下载:

[root@node1 ~]# wget :15672/cli/rabbitmqadmin

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywfpx.html