irpas技术客

RabbitMQ管理界面操作详情_青朽__rabbitmq管理界面使用

网络投稿 7072

一.主界面介绍

该页面是RabbitMQ主界面,总共有六个选项卡:

1.Overview

MQ的概览情况,里面包括集群各个节点的信息、端口映射信息;

Totals: 准备消费的消息数、待确认的消息数、消息总数以及消息的各种处理速率(发送速率、确认速率、写入硬盘速率等等)。 Nodes: 其实就是支撑 RabbitMQ 运行的一些机器,相当于集群的节点。点击每个节点,可以查看节点的详细信息。 Churn statistics: 展示的是 Connection、Channel 以及 Queue 的创建/关闭速率。这个里边展示了端口的映射信息以及 Web 的上下文信息。 5672 是 RabbitMQ 通信端口。 15672 是 Web 管理页面端口。 25672 是集群通信端口。 Export definitions && Import definitions: 两个可以导入导出当前实例的一些配置信息:

2.Connections

MQ运行中的当前保持连接的连接信息,其中包含了连接的虚拟主机路径(virtual host),链接的主机及端口、那个用户连接的,状态等信息。在java代码中通过ConnectionFactory 的 newConnection() 后进行创建一个连接,无论是消息生产者还是消息消费者,只要连接上来了这里都会显示出来,当使用connection.close()之后 连接将关闭。

3.Channels

信道或者通道,Channel是在连接中存在的,一个Connection中可以有多个Channel。在Java代码中 通过连接来创建信道。当代码执行connection.createChannel(),该界面下面就会有信道信息,它和连接紧密相关;一个连接可以有多个通道,这个多个通道通过多线程实现,一般情况下,我们在通道中创建队列、交换机等。生产者的通道一般会立马关闭;消费者是一直监听的,通道几乎是会一直存在。

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 消息的速率。

***4.Exchange

***交换机,它与队列进行绑定后,消息根据exchang的类型,按照不同的绑定规则分发消息到消息队列中,可以是一个消息被分发给多个消息队列,也可以是一个消息分发到一个消息队列,和队列紧密相关; Type 表示交换机的类型。 Features 有两个取值 D 和 I。D 表示交换机持久化,将交换机的属性在服务器内部保存,当 MQ 的服务器发生意外或关闭之后,重启 RabbitMQ 时不需要重新手动或执行代码去建立交换机,交换机会自动建立,相当于一直存在。I 表示这个交换机不可以被消息生产者用来推送消息,仅用来进行交换机和交换机之间的绑定。 Message rate in 表示消息进入的速率。Message rate out 表示消息出去的速率。

name 添加的交换机名称 type 交换机类型,有四种; 直连交换机:Direct exchange; 扇形交换机:Fanout exchange; 主题交换机:Topic exchange; 首部交换机:Headers exchange Durability 是否需要持久化,设置是否持久 durab 设置为 true 表示持久化, 反之是非持久,设置为true则将Exchange存盘,即使服务器重启数据也不会丢失 Auto delete设置是否自动删除,当最后一个绑定到Exchange上的队列删除后,自动删除该Exchange,简单来说也就是如果该Exchange没有和任何队列Queue绑定则删除 Internal 设置是否为rabbitmq内部使用, true表示是内部使用, false表示不是内部使用 Arguments 分发器的其他设置项,json格式;可以设置消息最大数量等属性

下面还有一些常用的操作: Bindings:交换机和队列建立绑定关系 Publish message:发送消息;通过交换机发送消息到和它有绑定关系的队列中; …

5.Queue

队列,是Massage的落脚点和等待接收的地方,Queue很适合做负载均衡,RabbitMQ可以在若干consumer中间实现轮流调度(Round-Robin); Features: 表示消息队列的特性,D 表示消息队列持久化。 State: 表示当前队列的状态,running 表示运行中;idle 表示空闲。 Ready: 表示待消费的消息总数。 Unacked: 表示待应答的消息总数。 Total: 表示消息总数 Ready+Unacked。 incoming: 表示消息进入的速率。 deliver/get: 表示获取消息的速率。 ack: 表示消息应答的速率。

Add a new queue 可以添加一个新的消息队列。 点击每一个消息队列的名称,可以进入到消息队列中。进入到消息队列后,可以完成对消息队列的进一步操作;发送消息。获取一条消息。移动一条消息(需要插件的支持)。删除消息队列。清空消息队列中的消息。

**Durablity: ** 持久化选项,Durable(持久化保存),Transient(即时保存), 持久化保存会在RabbitMQ宕机或者重启后,未消费的消息仍然存在,即时保存在RabbitMQ宕机或者重启后交换机会不存在。需要重新定义该Exchange。 即使保存可以理解为计算机内存,关机就没了。 持久化保存可以理解为硬盘,关机,文件还在。

get messages: 获取消息;

Ack mode中: Nack message requeue true 获取消息,不做ack应答,消息重新入队列; reject requeue true 拒绝获取消息,消息重新放入队列; reject requeue false 拒绝获取消息,消息不重新入队列,会删除消息; Automatic ack 自动ack应答,收到消息,消息会删除

6.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 (模拟者) 模拟者,无法登录管理控制台。

二.实际操作发送消费消息

2.1、Direct DirectExchange 的路由策略是将消息队列绑定到一个 DirectExchange 上,当一条消息到达 DirectExchange 时会被转发到与该条消息 routing key 相同的 Queue 上,例如消息队列名为 “queue.test”,则 routingkey 为 “queue.test” 的消息会被该消息队列接收。

2.1.1、新建direct交换机: 2.1.2 新建普通队列 2.1.3 交换机和队列建立绑定关系 点击交换机进行绑定: 点击交换机发送消息:这里我发送了两条 发动成功: 点击队列的消息; 2.2 Fanout

FanoutExchange 的数据交换策略是把所有到达 FanoutExchange 的消息转发给所有与它绑定的 Queue 上,在这种策略中,routingkey 将不起任何作用; 新建队列: 新建交换机: 交换机和每个队列帮绑定: 然后给这个交换机发送消息两条消息:我们看到每个队列都收到两条消息;

2.3.Topic

TopicExchange 是比较复杂但是也比较灵活的一种路由策略,在 TopicExchange 中,Queue 通过 routingkey 绑定到 TopicExchange 上,当消息到达 TopicExchange 后,TopicExchange 根据消息的 routingkey 将消息路由到一个或者多个 Queue 上;*(星号)可以代替一个单词,#(井号)可以替代零个或多个单词。

首先创建 TopicExchange,参数和前面的一致。然后创建三个 Queue,第一个 Queue 用来存储和 “xiaomi” 有关的消息,第二个 Queue 用来存储和 “huawei” 有关的消息,第三个 Queue 用来存储和 “phone” 有关的消息。 将三个 Queue 分别绑定到 TopicExchange 上,第一个 Binding 中的 “xiaomi.#” 表示消息的 routingkey 凡是以 “xiaomi” 开头的,都将被路由到名称为 “xiaomi” 的 Queue 上,第二个 Binding 中的 “huawei.#” 表示消息的 routingkey 凡是以 “huawei” 开头的,都将被路由到名称为 “huawei” 的 Queue 上,第三个 Binding 中的 “#.phone.#” 则表示消息的 routingkey 中凡是包含 “phone” 的,都将被路由到名称为 “phone” 的 Queue 上。 第一条消息将被路由到名称为 “xiaomi” 的 Queue 上,第二条消息将被路由到名为 “huawei” 的 Queue 上,第三条消息将被路由到名为 “xiaomi” 以及名为 “phone” 的 Queue 上,第四条消息将被路由到名为 “huawei” 以及名为 “phone” 的 Queue 上,最后一条消息则将被路由到名为 “phone” 的 Queue 上。


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #rabbitmq管理界面使用 #nodes #其实就是支撑 #rabbitmq #运行的一些机器相当于集群的节点