RabbitMQ 管理页面该如何使用

2021年11月24日 阅读数:5
这篇文章主要向大家介绍RabbitMQ 管理页面该如何使用,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

@[toc]
RabbitMQ 的 web 管理页面相信不少小伙伴都用过,随便点一下估计也都知道啥意思,不过本着精益求精的思想,松哥仍是想和你们捋一捋这个管理页面的各个细节。web

1. 概览

首先,这个 Web 管理页面大概就像下图这样:缓存

首先一共有六个选项卡:服务器

  1. Overview:这里能够概览 RabbitMQ 的总体状况,若是是集群,也能够查看集群中各个节点的状况。包括 RabbitMQ 的端口映射信息等,均可以在这个选项卡中查看。
  2. Connections:这个选项卡中是链接上 RabbitMQ 的生产者和消费者的状况。
  3. Channels:这里展现的是“通道”信息,关于“通道”和“链接”的关系,松哥在后文再和你们详细介绍。
  4. Exchange:这里展现全部的交换机信息。
  5. Queue:这里展现全部的队列信息。
  6. Admin:这里展现全部的用户信息。

右上角是页面刷新的时间,默认是 5 秒刷新一次,展现的是全部的 Virtual host。多线程

这是整个管理页面的一个大体状况,接下来咱们来逐个介绍。fetch

2. Overview

Overview 中分了以下一些功能模块:spa

分别是:插件

Totals:线程

Totals 里面有 准备消费的消息数、待确认的消息数、消息总数以及消息的各类处理速率(发送速率、确认速率、写入硬盘速率等等)。翻译

Nodes:队列

Nodes 其实就是支撑 RabbitMQ 运行的一些机器,至关于集群的节点。

点击每一个节点,能够查看节点的详细信息。

Churn statistics:

这个很差翻译,里边展现的是 Connection、Channel 以及 Queue 的建立/关闭速率。

Ports and contexts:

这个里边展现了端口的映射信息以及 Web 的上下文信息。

  • 5672 是 RabbitMQ 通讯端口。
  • 15672 是 Web 管理页面端口。
  • 25672 是集群通讯端口。

Export definitions && Import definitions:

最后面这两个能够导入导出当前实例的一些配置信息:

3. Connections

这里主要展现的是当前链接上 RabbitMQ 的信息,不管是消息生产者仍是消息消费者,只要链接上来了这里都会显示出来。

注意协议中的 AMQP 0-9-1 指的是 AMQP 协议的版本号。

其余属性含义以下:

  • User name:当前链接使用的用户名。
  • State:当前链接的状态,running 表示运行中;idle 表示空闲。
  • SSL/TLS:表示是否使用 ssl 进行链接。
  • Channels:当前链接建立的通道总数。
  • From client:每秒发出的数据包。
  • To client:每秒收到的数据包。

点击链接名称能够查看每个链接的详情。

在详情中能够查看每个链接的通道数以及其余详细信息,也能够强制关闭一个链接。

4. Channels

这个地方展现的是通道的信息:

那么什么是通道呢?

一个链接(IP)能够有多个通道,如上图,一共是两个链接,可是一共有 12 个通道。

一个链接能够有多个通道,这个多个通道经过多线程实现,通常状况下,咱们在通道中建立队列、交换机等。

生产者的通道通常会立马关闭;消费者是一直监听的,通道几乎是会一直存在。

上面各项参数含义分别以下:

  • Channel:通道名称。
  • User name:该通道登陆使用的用户名。
  • Model:通道确认模式,C 表示 confirm;T 表示事务。
  • State:通道当前的状态,running 表示运行中;idle 表示空闲。
  • Unconfirmed:待确认的消息总数。
  • Prefetch:Prefetch 表示每一个消费者最大的能承受的未确认消息数目,简单来讲就是用来指定一个消费者一次能够从 RabbitMQ 中获取多少条消息并缓存在消费者中,一旦消费者的缓冲区满了,RabbitMQ 将会中止投递新的消息到该消费者中直到它发出有消息被 ack 了。总的来讲,消费者负责不断处理消息,不断 ack,而后只要 unAcked 数少于 prefetch * consumer 数目,RabbitMQ 就不断将消息投递过去。
  • Unacker:待 ack 的消息总数。
  • publish:消息生产者发送消息的速率。
  • confirm:消息生产者确认消息的速率。
  • unroutable (drop):表示未被接收,且已经删除了的消息。
  • deliver/get:消息消费者获取消息的速率。
  • ack:消息消费者 ack 消息的速率。

5. Exchange

这个地方展现交换机信息:

这里会展现交换机的各类信息。

Type 表示交换机的类型。

Features 有两个取值 D 和 I。

D 表示交换机持久化,将交换机的属性在服务器内部保存,当 MQ 的服务器发生意外或关闭以后,重启 RabbitMQ 时不须要从新手动或执行代码去创建交换机,交换机会自动创建,至关于一直存在。

I 表示这个交换机不能够被消息生产者用来推送消息,仅用来进行交换机和交换机之间的绑定。

Message rate in 表示消息进入的速率。
Message rate out 表示消息出去的速率。

点击下方的 Add a new exchange 能够建立一个新的交换机。

6. Queue

这个选项卡就是用来展现消息队列的:

各项含义以下:

  • Name:表示消息队列名称。
  • Type:表示消息队列的类型,除了上图的 classic,另外还有一种消息类型是 Quorum。两个区别以下图:

  • Features:表示消息队列的特性,D 表示消息队列持久化。
  • State:表示当前队列的状态,running 表示运行中;idle 表示空闲。
  • Ready:表示待消费的消息总数。
  • Unacked:表示待应答的消息总数。
  • Total:表示消息总数 Ready+Unacked。
  • incoming:表示消息进入的速率。
  • deliver/get:表示获取消息的速率。
  • ack:表示消息应答的速率。

点击下方的 Add a new queue 能够添加一个新的消息队列。

点击每个消息队列的名称,能够进入到消息队列中。进入到消息队列后,能够完成对消息队列的进一步操做,例如:

  • 将消息队列和某一个交换机进行绑定。
  • 发送消息。
  • 获取一条消息。
  • 移动一条消息(须要插件的支持)。
  • 删除消息队列。
  • 清空消息队列中的消息。
  • ...

以下图:

7. Admin

这里是作一些用户管理操做,以下图:

各项属性含义以下:

  • Name:表示用户名称。
  • Tags:表示角色标签,只能选取一个。
  • Can access virtual hosts:表示容许进入的虚拟主机。
  • Has password:表示这个用户是否设置了密码。

常见的两个操做时管理用户和虚拟主机。

点击下方的 Add a user 能够添加一个新的用户,添加用户的时候须要给用户设置 Tags,其实就是用户角色,以下:

  • none:
    不能访问 management plugin
  • management:
    用户能够经过 AMQP 作的任何事
    列出本身能够经过 AMQP 登入的 virtual hosts
    查看本身的 virtual hosts 中的 queues, exchanges 和 bindings
    查看和关闭本身的 channels 和 connections
    查看有关本身的 virtual hosts 的“全局”的统计信息,包含其余用户在这些 virtual hosts 中的活动
  • policymaker:
    management 能够作的任何事
    查看、建立和删除本身的 virtual hosts 所属的 policies 和 parameters
  • monitoring:
    management 能够作的任何事
    列出全部 virtual hosts,包括他们不能登陆的 virtual hosts
    查看其余用户的 connections 和 channels
    查看节点级别的数据如 clustering 和 memory 使用状况
    查看真正的关于全部 virtual hosts 的全局的统计信息
  • administrator:
    policymaker 和 monitoring 能够作的任何事
    建立和删除 virtual hosts
    查看、建立和删除 users
    查看建立和删除 permissions
    关闭其余用户的 connections
  • impersonator(模拟者)
    模拟者,没法登陆管理控制台。

另外,这里也能够进行虚拟主机 virtual host 的操做,不过关于虚拟主机我打算另外写一篇文章和你们详聊,这里就先不展开啦。

8. 小结

好啦,今天算是一篇入门文章,和你们简单聊一聊 RabbitMQ 的 web 管理页面展现的一些信息。