4.5. 使用 AMQ 管理控制台管理代理
您可以使用 AMQ 管理控制台查看有关正在运行的代理的信息,并管理以下资源:
- 入站网络连接(接受者)
- addresses
- 队列
4.5.1. 查看有关代理的详情
要查看代理配置方式,请在左侧菜单中点击 Artemis。在文件夹树中,默认选择本地代理。
在主窗格中,有以下标签页:
状态
显示代理当前状态的信息,如运行时间和集群信息。另外还显示代理当前使用的地址内存量。图中显示这个值作为
global-max-size
配置参数的比例。图 4.2. Status 标签页
连接
- 显示有关代理连接的信息,包括客户端、集群和桥接连接。
会话
- 显示有关当前在代理上打开的所有会话的信息。
消费者
- 显示有关当前在代理上打开的所有消费者的信息。
producers
- 显示有关当前在代理上打开的制作者的信息。
addresses
- 显示代理上地址的信息。这包括内部地址,如 storage-and-forward 地址。
队列
- 显示代理上队列的信息。这包括内部队列,如 store-and-forward 队列。
属性
- 显示代理上配置的属性的详细信息。
操作
- 显示您可以从控制台在代理上执行的 JMX 操作。当您点操作时,会打开一个对话框,供您为操作指定参数值。
Chart
- 显示代理上配置的属性的实时数据。您可以编辑 chart 以指定 chart 中包含的属性。
代理图
- 显示集群拓扑图。这包括集群中的所有代理,以及本地代理中的任何地址和队列。
4.5.2. 查看代理图
您可以查看拓扑中的所有 AMQ Broker 资源图,包括代理(活跃和备份代理)、生产者和消费者、地址和队列。
流程
- 在左侧菜单中,单击 Artemis。
在主窗格中,点 Broker 图 选项卡。
控制台显示集群拓扑图。这包括集群中的所有代理以及本地代理中的任何地址和队列,如图所示。
图 4.3. 代理图 标签页
- 要更改图中显示哪些项目,请使用图顶部的复选框。单击 Refresh。
要显示本地代理或连接的地址或队列的属性,请点击图中的节点。例如,下图显示包含本地代理属性的示意图。
图 4.4. 代理图 标签页,包括属性
4.5.3. 查看接受者
您可以查看为代理配置的 acceptors 的详情。
流程
- 在左侧菜单中,单击 Artemis。
- 在文件夹树中,单击 acceptors。
要查看有关如何配置接受者的详细信息,请点 acceptor。
控制台显示在 Attributes 选项卡上的对应属性,如图所示。
图 4.5. AMQP acceptor 属性
- 要查看属性的完整详情,请点属性。此时会打开一个额外的窗口来显示详情。
4.5.4. 管理地址和队列
一个地址代表消息传递端点。在配置中,会指定一个唯一名称的典型地址。
队列与地址关联。每个地址可以有多个队列。传入的消息与地址匹配后,根据配置的路由类型,消息将发送到一个或多个队列。队列可以被配置为自动创建和删除。
4.5.4.1. 创建地址
典型的地址被授予唯一的名称、零个或者多个队列,以及路由类型。
路由类型决定了如何将消息发送到与地址关联的队列。地址可以通过两种不同的路由类型进行配置。
如果您希望消息路由到… | 使用此路由类型… |
匹配地址中的单个队列,以点对点的方式。 | anycast |
匹配地址中的每个队列都以发布方式发布。 | 多播 |
您可以创建和配置地址和队列,然后在不再使用时删除它们。
流程
- 在左侧菜单中,单击 Artemis。
- 在文件夹树中,单击 地址。
在主窗格中,点 Create address 选项卡。
此时会出现一个页面,供您创建地址,如图所示。
图 4.6. 创建地址页面
完成以下字段:
地址名称
- 地址的路由名称。
路由类型
选择以下选项之一:
-
多播
:发送到地址的消息将以发布订阅的方式分发到所有订阅者。 -
anycast
:发送到此地址的消息将仅以点到点的方式分发到一个订阅者。 两者
:允许您为每个地址定义多个路由类型。这通常会产生反模式,我们不推荐使用。注意如果一个地址同时使用两个路由类型,且客户端没有显示首选项,代理会默认使用
anycast
路由类型。一个例外是客户端使用 MQTT 协议时。在这种情况下,默认路由类型是multicast
。
-
- 单击 Create Address。
4.5.4.2. 发送消息到地址
以下流程演示了如何使用控制台向地址发送消息。
流程
- 在左侧菜单中,单击 Artemis。
- 在文件夹树中,选择一个地址。
在主窗格的导航栏中,点
。 此时会出现一个页面,供您创建信息,如图所示。
图 4.7. 发送消息页面
- 默认情况下,使用您用来登录到 AMQ 管理控制台的凭证发送消息。如果要使用不同的凭证,请清除 Use current logon user 复选框,并在 Username 和 Password 字段中指定值,它们会在清除复选框后显示。
- 如有必要,点 Add Header 按钮来添加消息标头信息。
- 输入消息正文。
- 在 Format 下拉菜单中选择消息正文格式的选项,然后单击 Format。消息正文使用您选择的格式的人类可读样式格式化。
单击 Send message。
发送消息。
- 若要发送附加消息,可更改您输入的任何信息,然后单击 Send message。
4.5.4.3. 创建队列
队列在生成者和消费者之间提供频道。
先决条件
- 要绑定队列的地址必须存在。要了解如何使用控制台创建地址,请参阅 第 4.5.4.1 节 “创建地址”。
流程
- 在左侧菜单中,单击 Artemis。
- 在文件夹树中,选择您要将队列绑定到的地址。
在主窗格中,单击 Create queue 选项卡。
此时会出现一个页面,供您创建队列,如图所示。
图 4.8. 创建 Queue 页面
完成以下字段:
队列名称
- 队列的唯一名称。
路由类型
选择以下选项之一:
-
多播
:发送到父地址的消息将分发到绑定到地址的所有队列。 -
anycast
:只有一个绑定到父地址的队列将会收到消息的副本。消息将在绑定到地址的所有队列中平均分配。
-
durable
- 如果您选择这个选项,则队列及其消息将持久。
Filter
- 连接到代理时使用的用户名。
最大消费者
- 在给定时间可以访问队列的最大消费者数。
没有消费者时清除
- 如果选中,则没有用户连接时将清除队列。
- 单击 Create Queue。
4.5.4.4. 检查队列的状态
chart 提供代理中队列状态的实时视图。
流程
- 在左侧菜单中,单击 Artemis。
- 在文件夹树中,导航到队列。
在主窗格中,点 Chart 选项卡。
控制台显示一个图表,显示所有队列属性的实时数据。
图 4.9. 队列的 Chart 标签页
注意要查看地址上多个队列的图表,请选择包含队列的
anycast
或multicast
文件夹。如有必要,为 chart 选择不同的条件:
- 在主窗格中,单击 Edit。
-
在
Attributes
列表中,选择您要包含在图表中的一个或多个属性。要选择多个属性,请按并存放 Ctrl 键并选择每个属性。 - 点 View Chart 按钮。Chart 根据您选择的属性更新。
4.5.4.5. 浏览队列
浏览队列会显示队列中的所有消息。您还可以过滤并排序列表以查找特定消息。
流程
- 在左侧菜单中,单击 Artemis。
在文件夹树中,导航到队列。
队列位于它们绑定到的地址中。
在主窗格的导航栏中,点
。 此时会显示队列中的消息。默认情况下会显示前 200 个消息。
图 4.10. 浏览队列页面
要浏览特定消息或一组信息,请执行以下操作之一:
to… 这些以下操作 过滤消息列表
在
Filter…
文本字段中输入过滤器条件。点搜索(即,放大)图标。排序消息列表
在消息列表中,点列标头。要降序对消息进行排序,请单击标头第二次。
要查看消息的内容,请单击 Show 按钮。
您可以查看消息标头、属性和正文。
4.5.4.6. 发送消息到队列
创建队列后,您可以向其发送一条消息。以下流程概述了向现有队列发送消息所需的步骤。
流程
- 在左侧菜单中,单击 Artemis。
- 在文件夹树中,导航到队列。
在主窗格中,单击 Send message 选项卡。
此时会出现用于编写消息的页面。
图 4.11. 为队列发送消息页面
- 默认情况下,使用您用来登录到 AMQ 管理控制台的凭证发送消息。如果要使用不同的凭证,请清除 Use current logon user 复选框,并在 Username 和 Password 字段中指定值,它们会在清除复选框后显示。
- 如有必要,点 Add Header 按钮来添加消息标头信息。
- 输入消息正文。
- 在 Format 下拉菜单中选择消息正文格式的选项,然后单击 Format。消息正文使用您选择的格式的人类可读样式格式化。
- 单击 Send message。发送消息。
- 若要发送附加消息,可更改您输入的任何信息,然后单击 Send message。
4.5.4.7. 将消息重新发送到队列
您可以重新发送之前发送的消息。
流程
- 浏览您要重新发送的消息。
- 单击您要重新发送的消息旁边的复选框。
- 点 Resend 按钮。此时会显示消息。
- 根据需要更新 消息标头和正文,然后单击 Send message。
4.5.4.8. 将消息移动到不同的队列
您可以将队列中的一个或多个消息移到不同的队列中。
流程
- 浏览您要移动的消息。
- 点击您要移动的每个消息旁边的复选框。
在导航栏中,点 Move Messages。
此时会出现确认对话框。
- 从下拉菜单中,选择要将消息移到的队列的名称。点 Move。
4.5.4.9. 删除消息或队列
您可以删除队列或从队列中清除所有消息。
流程
- 浏览您要删除的队列,或清除。
执行以下操作之一:
to… 这些以下操作 从队列中删除消息
- 点击您要删除的每个消息旁边的复选框。
- 点击 Delete 按钮。
从队列中清除所有消息
- 在主窗格中的导航栏中,单击 Delete queue。
- 点 Purge Queue 按钮。
删除队列
- 在主窗格中的导航栏中,单击 Delete queue。
- 单击 Delete Queue 按钮。