深度剖析RabbitMQ:从基础组件到管理页面详解

文章目录

一、简介

rabbitmq-management是RabbitMq web管理端,用的是erlang的cowboy框架进行开发。web页面包括Overview(概述)、Connections(连接)、Channels(通道)、Exchanges(交换器)、Queues(队列)、Admin(用户管理)。

⾸先⼀共有六个选项卡:

  1. Overview:这⾥可以概览 RabbitMQ 的整体情况,如果是集群,也可以查看集群中各个节点的情况。包括 RabbitMQ 的端⼝映射信息等,都可以在这个选项卡中查看。
  2. Connections:这个选项卡中是连接上 RabbitMQ 的⽣产者和消费者的情况。
  3. Channels:这⾥展⽰的是"通道"信息,关于"通道"和"连接"的关系
  4. Exchange:这⾥展⽰所有的交换机信息。
  5. Queue:这⾥展⽰所有的队列信息。
  6. Admin:这⾥展⽰所有用户信息

二、Overview

2.1 Overview->Totals

第一块,所有队列的阻塞情况

Ready:待消费的消息总数。

Unacked:待应答的消息总数。

Total:总数 Ready+Unacked。

第二块,所有队列的消费情况。速率=(num1-num0)/(s1-s0) num1:s1时刻的个数。num0:s0时刻的个数。

Publish:producter pub消息的速率。

Publisher confirm:broker确认pub消息的速率。

Deliver(manual ack):customer手动确认的速率。

Deliver( auto ack):customer自动确认的速率。

Consumer ack:customer正在确认的速率。

Redelivered:正在传递'redelivered'标志集的消息的速率。

Get (manual ack):响应basic.get而要求确认的消息的传输速率。

Get (auto ack):响应于basic.get而发送不需要确认的消息的速率。

Return:将basic.return发送给producter的速率。

Disk read:queue从磁盘读取消息的速率。

Disk write:queue从磁盘写入消息的速率。

整体角色的个数

Connections:client的tcp连接的总数。

Channels:通道的总数。

Exchange:交换器的总数。

Queues:队列的总数。

Consumers:消费者的总数。

2.2 Overview->Nodes

启动一个broker都会产生一个node。

broker的属性

Name:broker名称

File descriptors:broker打开的文件描述符和限制。

Socket descriptors:broker管理的网络套接字数量和限制。当限制被耗尽时,RabbitMQ将停止接受新的网络连接。

Erlang processes:erlang启动的进程数。

Memory:当前broker占用的内存。

Disk space:当前broker占用的硬盘。

Uptime:当前broker持续运行的时长。

Info:节点角色(内存、磁盘)。

Reset stats:节点信息统计(node)。

2.3 Overview->Churn statistics

展示的是 Connection、Channel 以及 Queue 的创建/关闭速率。

2.4 Overview->Ports and contexts

5672 是 RabbitMQ 通信端口。

15672 是 Web 管理页面端口。

25672 是集群通信端口。

2.5 Overview->Export definitions

定义由用户,虚拟主机,权限,参数,交换,队列和绑定组成。 它们不包括队列的内容或集群名称。 独占队列不会被导出。

2.6 Overview->Import definitions

导入的定义将与当前定义合并。 如果在导入过程中发生错误,则所做的任何更改都不会回滚。

三、Connections

当前所有客户端活动的连接。包括生成者和消费者。

连接的属性

Virtual host:所属的虚拟主机。

Name:名称。

User name:使用的用户名。

State:当前的状态,running:运行中;idle:空闲。

SSL/TLS:是否使用ssl进行连接。

Protocol:使用的协议。

Channels:创建的channel的总数。

From client:每秒发出的数据包。

To client:每秒收到的数据包。

四、Channels

当前连接所有创建的通道。

通道的属性

channel:名称。

Virtual host:所属的虚拟主机。

User name:使用的用户名。

Mode:渠道保证模式。 可以是以下之一,或者不是:C: confirm。T:transactional(事务)。

State :当前的状态,running:运行中;idle:空闲。

Unconfirmed:待confirm的消息总数。

Prefetch:设置的prefetch的个数。

Unacker:待ack的消息总数。

publish:producter pub消息的速率。

confirm:producter confirm消息的速率。

deliver/get:consumer 获取消息的速率。

ack:consumer ack消息的速率。

五、Exchanges

交换器属性

Virtual host:所属的虚拟主机。

Name:名称。

Type:exchange type,具体的type可以查看RabbitMq系列之一:基础概念。

Features:功能。 可以是以下之一,或者不是:D: 持久化。T:Internal,存在改功能表示这个exchange不可以被client用来推送消息,仅用来进行exchange和exchange之间的绑定,否则可以推送消息也可以绑定。

Message rate in:消息进入的速率。

Message rate out:消息出去的速率。

Exchange 有四种类型:direct、topic、fanout、headers

Direct :交换机会将消息中的Routing key与该Exchange所有Binding中的Routing key进行匹配,如果相等,就发送到该Binding对应的Queue中。

Fanout :交换机会将接收到的消息发送给所有与之绑定的队列。

Topic :将消息中的Routing key与该Exchange所有Binding中的Routing key进行匹配,匹配成功发送到该Binding对应的Queue中。routingKey必须是由点隔开的一系列的标识符组成(根据消息的特性以.隔开)。

*匹配一个标识符
 #匹配0个或多个标识符

Headers :分发消息不依赖路由键,使用发送消息basicProperties对象中的headers来匹配的,将消息中的headers与该交换机中所有Binding中的参数进行匹配。

六、Queues

队列的属性

Virtual host:所属的虚拟主机。

Name:名称。

Features:功能。 可以是以下之一,或者不是:D: 持久化。

State:当前的状态,running:运行中;idle:空闲。

Ready:待消费的消息总数。

Unacked:待应答的消息总数。

Total:总数 Ready+Unacked。

incoming:消息进入的速率。

deliver/get:消息获取的速率。

ack:消息应答的速率。

七、Admin

用户属性

Name:名称。

Tags:角色标签,只能选取一个。

Can access virtual hosts:允许进入的vhost。

Has password:设置了密码。

administrator (超级管理员)

可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。

monitoring(监控者)

可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)

policymaker(策略制定者)

可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。

management(普通管理者)

仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。

none(其他)

无法登陆管理控制台,通常就是普通的生产者和消费者。

相关推荐
龙哥·三年风水1 小时前
服务端开发模式-thinkphp-重新整理workman
分布式·php·workman
晒足以百八十2 小时前
大数据技术实训:Zookeeper集群配置
大数据·分布式·zookeeper
小马爱打代码4 小时前
Zookeeper特性与节点数据类型详解
分布式·zookeeper·云原生
技术路上的苦行僧7 小时前
互联网全景消息(11)之Kafka深度剖析(下)
分布式·kafka
jimiStephen7 小时前
zookeeper-配置
分布式·zookeeper·debian
一张假钞7 小时前
Zookeeper概览
分布式·zookeeper·云原生
jimiStephen7 小时前
zookeeper 基本原理-单机模式、集群模式
分布式·zookeeper·云原生
言之。10 小时前
【微服务】面试题 6、分布式事务
分布式·微服务·架构
一张假钞20 小时前
Zookeeper单机操作
分布式·zookeeper·云原生