管理 AMQ Broker
使开源包含更多 复制链接链接已复制到粘贴板!
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。有关更多详情,请参阅我们的首席技术官 Chris Wright 提供的消息。
第 1 章 概述 复制链接链接已复制到粘贴板!
AMQ Broker 是一个基于 ActiveMQ Artemis 的高性能消息传递的实施。它具有基于日志的快速消息持久性,支持多种语言、协议和平台。
AMQ Broker 提供多个接口来管理和与代理实例交互,如管理控制台、管理 API 和命令行界面。另外,您可以通过收集运行时指标来监控代理性能,将代理配置为主动监控死锁状况等问题,并以交互方式检查代理和队列的健康状况。
本指南提供有关典型的代理管理任务的详细信息,例如:
- 升级代理实例
- 使用命令行界面和管理 API
- 检查代理和队列的健康状况
- 收集代理运行时指标
- 主动监控关键代理操作
1.1. 支持的配置 复制链接链接已复制到粘贴板!
有关 AMQ Broker 支持的配置的当前信息,请参阅红帽客户门户网站中的"Red Hat AMQ 7 支持的配置"文章。
1.2. 文档惯例 复制链接链接已复制到粘贴板!
本文档对 sudo 命令、文件路径和可替换值使用以下惯例:
sudo 命令
在本文档中,sudo 用于任何需要 root 特权的命令。使用 sudo 时,您应始终谨慎操作,因为任何更改都可能会影响整个系统。
有关使用 sudo 的更多信息,请参阅管理 sudo 访问。
关于在此文档中使用文件路径
在这个文档中,所有文件路径都对 Linux、UNIX 和类似操作系统(例如 /home/...)有效。如果您使用的是 Microsoft Windows,则应使用等效的 Microsoft Windows 路径(例如,C:\Users\...)。
可替换值
本文档有时会使用可替换值,您必须将这些值替换为特定于环境的值。可替换的值为小写,以尖括号(<>)括起,样式则使用斜体和 monospace 字体。用下划线(_)分隔多个词语。
例如,在以下命令中,将 <install_dir> 替换为您自己的目录名称。
<install_dir>/bin/artemis create mybroker
$ <install_dir>/bin/artemis create mybroker
第 2 章 升级代理 复制链接链接已复制到粘贴板!
2.1. 关于升级 复制链接链接已复制到粘贴板!
红帽 在客户门户网站中 发布新版本的 AMQ Broker。将代理更新至最新版本,以确保您有最新的功能增强和修复。通常,红帽以三种方式之一发布了一个 AMQ Broker 的新版本:
- 主发行版本
- 当应用程序从一个主版本转换到下一个主版本时(例如,从 AMQ Broker 6 转换到 AMQ Broker 7),则需要进行重大升级或迁移。本指南不解决这种类型的升级。
- 次发行版本
- AMQ Broker 定期提供次发行版本,它们是包括新功能的更新,以及程序错误和安全修复。如果您计划从一个 AMQ Broker 次版本升级到另一个 AMQ Broker 次版本,例如从 AMQ Broker 7.0 升级到 AMQ Broker 7.1,则不使用私有、不支持或技术预览组件的应用程序不需要更改代码。
- 微版本
- AMQ Broker 还定期提供包含次要增强和修复的微版本。微版本按最后一个数字递增次版本,例如从 7.0.1 增加到 7.0.2。微版本不需要修改代码,但有些版本可能需要配置更改。
2.2. 升级旧的 7.x 版本 复制链接链接已复制到粘贴板!
2.2.1. 将代理实例从 7.0.x 升级到 7.0.y 复制链接链接已复制到粘贴板!
将 AMQ Broker 从一个版本 7.0 升级到另一个版本的过程与另一个版本类似: 您可以从客户门户网站下载存档,然后提取它。
以下小节介绍了如何为不同的操作系统升级 7.0.x 代理。
2.2.1.1. 在 Linux 上从 7.0.x 升级到 7.0.y 复制链接链接已复制到粘贴板!
您下载的存档名称可能与以下示例中使用的不同。
先决条件
在升级 AMQ Broker 前,请查看目标发行版本的发行注记。
本发行注记介绍了重要的增强、已知问题以及目标版本中行为的更改。
如需更多信息,请参阅 AMQ Broker 7.0 发行注记。
流程
- 按照 下载 AMQ Broker 归档中的说明,从红帽客户门户网站下载所需的存档。
将存档的所有者更改为拥有要升级 AMQ Broker 安装的同一用户。
sudo chown amq-broker:amq-broker jboss-amq-7.x.x.redhat-1.zip
sudo chown amq-broker:amq-broker jboss-amq-7.x.x.redhat-1.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将存档移到 AMQ Broker 原始安装过程中创建的目录。在以下示例中,使用目录
/opt/redhat。sudo mv jboss-amq-7.x.x.redhat-1.zip /opt/redhat
sudo mv jboss-amq-7.x.x.redhat-1.zip /opt/redhatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为目录所有者,提取压缩存档的内容。归档以压缩格式保存。在以下示例中,用户
amq-broker使用 unzip 命令提取存档。su - amq-broker cd /opt/redhat unzip jboss-amq-7.x.x.redhat-1.zip
su - amq-broker cd /opt/redhat unzip jboss-amq-7.x.x.redhat-1.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果代理正在运行,请停止。
<broker_instance_dir>/bin/artemis stop
<broker_instance_dir>/bin/artemis stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将代理实例复制到当前用户的主目录来备份代理目录。
cp -r <broker_instance_dir> ~/
cp -r <broker_instance_dir> ~/Copy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)请注意代理的当前版本。代理停止后,日志文件的末尾会显示类似以下的行,该行可在 <
broker_instance_dir> /log/artemis.log中找到。INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.0.0.amq-700005-redhat-1 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.0.0.amq-700005-redhat-1 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> /etc/artemis.profile配置文件,将ARTEMIS_HOME属性设置为提取存档时创建的新目录。ARTEMIS_HOME='/opt/redhat/jboss-amq-7.x.x-redhat-1'
ARTEMIS_HOME='/opt/redhat/jboss-amq-7.x.x-redhat-1'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动升级的代理。
<broker_instance_dir>/bin/artemis run
<broker_instance_dir>/bin/artemis runCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开日志文件 <
broker_instance_dir> /log/artemis.log,并找到类似以下两行。请注意代理处于活动状态后日志中出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.1.0.amq-700005-redhat-1 [0.0.0.0, nodeID=4782d50d-47a2-11e7-a160-9801a793ea45]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.1.0.amq-700005-redhat-1 [0.0.0.0, nodeID=4782d50d-47a2-11e7-a160-9801a793ea45]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.1.2. 在 Windows 上从 7.0.x 升级到 7.0.y 复制链接链接已复制到粘贴板!
先决条件
在升级 AMQ Broker 前,请查看目标发行版本的发行注记。
本发行注记介绍了重要的增强、已知问题以及目标版本中行为的更改。
如需更多信息,请参阅 AMQ Broker 7.0 发行注记。
流程
- 按照 下载 AMQ Broker 归档中的说明,从红帽客户门户网站下载所需的存档。
- 使用文件管理器将存档移到您在 AMQ Broker 最后一次安装时创建的文件夹。
- 提取存档的内容。右键单击 .zip 文件并选择 Extract All。
输入以下命令来停止代理。
<broker_instance_dir>\bin\artemis-service.exe stop
<broker_instance_dir>\bin\artemis-service.exe stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用文件管理器备份代理。
-
右键单击 <
broker_instance_dir>文件夹,再选择 Copy。 - 右键单击同一窗口并选择" 粘贴 "。
-
右键单击 <
(可选)请注意代理的当前版本。代理停止后,日志文件的末尾会显示类似以下的行,该行可在 <
broker_instance_dir> \log\artemis.log中找到。INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.0.0.amq-700005-redhat-1 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.0.0.amq-700005-redhat-1 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile配置文件,将ARTEMIS_HOME属性设置为提取存档时创建的新目录。ARTEMIS_HOME=<install_dir>
ARTEMIS_HOME=<install_dir>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动升级的代理。
<broker_instance_dir>\bin\artemis-service.exe start
<broker_instance_dir>\bin\artemis-service.exe startCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开日志文件 <
broker_instance_dir> \log\artemis.log,并找到类似以下两行。请注意代理处于活动状态后日志中出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.1.0.amq-700005-redhat-1 [0.0.0.0, nodeID=4782d50d-47a2-11e7-a160-9801a793ea45]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.1.0.amq-700005-redhat-1 [0.0.0.0, nodeID=4782d50d-47a2-11e7-a160-9801a793ea45]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
2.2.2. 将代理实例从 7.0.x 升级到 7.1.0 复制链接链接已复制到粘贴板!
AMQ Broker 7.1.0 包含之前版本没有包括的配置文件和设置。将代理实例从 7.0.x 升级到 7.1.0 需要将这些新文件和设置添加到现有的 7.0.x 代理实例中。以下小节介绍了如何为不同的操作系统将 7.0.x 代理实例升级到 7.1.0。
从 AMQ Broker 7.1.0 开始,默认情况下,您只能从本地主机访问 AMQ 管理控制台。要了解配置远程访问控制台的信息,请参阅配置本地和远程访问 AMQ 管理控制台。
2.2.2.1. 从 7.0.x 升级到 Linux 上的 7.1.0 复制链接链接已复制到粘贴板!
在升级 7.0.x 代理前,您需要安装 Red Hat AMQ Broker 7.1.0 并创建临时代理实例。这将生成升级 7.0.x 代理所需的 7.1.0 配置文件。
先决条件
在升级 AMQ Broker 前,请查看目标发行版本的发行注记。
本发行注记介绍了重要的增强、已知问题以及目标版本中行为的更改。
如需更多信息,请参阅 AMQ Broker 7.1 发行注记。
在升级 7.0.x 代理前,您必须首先安装版本 7.1。
有关在 Linux 上安装 7.1 的步骤,请参阅安装 AMQ Broker。
流程
如果正在运行,请停止您要升级的 7.0.x 代理:
<broker_instance_dir>/bin/artemis stop
$ <broker_instance_dir>/bin/artemis stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将代理实例复制到当前用户的主目录来备份代理目录。
cp -r <broker_instance_dir> ~/
cp -r <broker_instance_dir> ~/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 7.0.x 代理的 <
broker_instance_dir> /etc/目录中打开文件artemis.profile。更新
ARTEMIS_HOME属性,以便其值引用 AMQ Broker 7.1.0 的安装目录:ARTEMIS_HOME="<7.1.0_install_dir>"
ARTEMIS_HOME="<7.1.0_install_dir>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在您更新的行下方,添加属性
ARTEMIS_INSTANCE_URI,并为它分配一个引用 7.0.x 代理实例目录的值:ARTEMIS_INSTANCE_URI="file://<7.0.x_broker_instance_dir>"
ARTEMIS_INSTANCE_URI="file://<7.0.x_broker_instance_dir>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过添加
jolokia.policyLocation参数并为其分配以下值来更新JAVA_ARGS属性:-Djolokia.policyLocation=${ARTEMIS_INSTANCE_URI}/etc/jolokia-access.xml-Djolokia.policyLocation=${ARTEMIS_INSTANCE_URI}/etc/jolokia-access.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
创建 7.1.0 代理实例。创建过程会生成从 7.0.x 升级到 7.1.0 所需的配置文件。请注意,在以下示例中,实例是在
upgrade_tmp目录中创建的:<7.1.0_install_dir>/bin/artemis create --allow-anonymous --user admin --password admin upgrade_tmp
$ <7.1.0_install_dir>/bin/artemis create --allow-anonymous --user admin --password admin upgrade_tmpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将临时 7.1.0 实例的
etc目录中的配置文件复制到 7.0.x 代理的 <broker_instance_dir> /etc/目录中。复制
management.xml文件:cp <temporary_7.1.0_broker_instance_dir>/etc/management.xml <7.0_broker_instance_dir>/etc/
$ cp <temporary_7.1.0_broker_instance_dir>/etc/management.xml <7.0_broker_instance_dir>/etc/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 复制
jolokia-access.xml文件:cp <temporary_7.1.0_broker_instance_dir>/etc/jolokia-access.xml <7.0_broker_instance_dir>/etc/
$ cp <temporary_7.1.0_broker_instance_dir>/etc/jolokia-access.xml <7.0_broker_instance_dir>/etc/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在 7.0.x 代理的 <
broker_instance_dir> /etc/目录中打开bootstrap.xml文件。注释掉或删除以下两行:
<app url="jolokia" war="jolokia.war"/> <app url="hawtio" war="hawtio-no-slf4j.war"/>
<app url="jolokia" war="jolokia.war"/> <app url="hawtio" war="hawtio-no-slf4j.war"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加以下内容来替换上一步中删除的两行:
<app url="console" war="console.war"/>
<app url="console" war="console.war"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
启动您升级的代理:
<broker_instance_dir>/bin/artemis run
$ <broker_instance_dir>/bin/artemis runCopy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
有关创建代理实例的更多信息,请参阅创建代理实例。
2.2.2.2. 从 7.0.x 升级到 Windows 上的 7.1.0 复制链接链接已复制到粘贴板!
在升级 7.0.x 代理前,您需要安装 Red Hat AMQ Broker 7.1.0 并创建临时代理实例。这将生成升级 7.0.x 代理所需的 7.1.0 配置文件。
先决条件
在升级 AMQ Broker 前,请查看目标发行版本的发行注记。
本发行注记介绍了重要的增强、已知问题以及目标版本中行为的更改。
如需更多信息,请参阅 AMQ Broker 7.1 发行注记。
在升级 7.0.x 代理前,您必须首先安装版本 7.1。
有关在 Windows 上安装 7.1 的步骤,请参阅安装 AMQ Broker。
流程
如果正在运行,请停止您要升级的 7.0.x 代理:
> <broker_instance_dir>\bin\artemis-service.exe stop
> <broker_instance_dir>\bin\artemis-service.exe stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用文件管理器备份代理的实例目录。
-
右键单击 <
broker_instance_dir>文件夹,再选择 Copy。 - 右键单击同一窗口并选择" 粘贴 "。
-
右键单击 <
在 7.0.x 代理的 <
broker_instance_dir> /etc/目录中打开文件artemis.profile。更新
ARTEMIS_HOME属性,以便其值引用 AMQ Broker 7.1.0 的安装目录:ARTEMIS_HOME="<7.1.0_install_dir>"
ARTEMIS_HOME="<7.1.0_install_dir>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在您更新的行下方,添加属性
ARTEMIS_INSTANCE_URI,并为它分配一个引用 7.0.x 代理实例目录的值:ARTEMIS_INSTANCE_URI="file://<7.0.x_broker_instance_dir>"
ARTEMIS_INSTANCE_URI="file://<7.0.x_broker_instance_dir>"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过添加
jolokia.policyLocation参数并为其分配以下值来更新JAVA_ARGS属性:-Djolokia.policyLocation=${ARTEMIS_INSTANCE_URI}/etc/jolokia-access.xml-Djolokia.policyLocation=${ARTEMIS_INSTANCE_URI}/etc/jolokia-access.xmlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
创建 7.1.0 代理实例。创建过程会生成从 7.0.x 升级到 7.1.0 所需的配置文件。请注意,在以下示例中,实例是在
upgrade_tmp目录中创建的:> <7.1.0_install_dir>/bin/artemis create --allow-anonymous --user admin --password admin upgrade_tmp
> <7.1.0_install_dir>/bin/artemis create --allow-anonymous --user admin --password admin upgrade_tmpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将临时 7.1.0 实例的
etc目录中的配置文件复制到 7.0.x 代理的 <broker_instance_dir> /etc/目录中。复制
management.xml文件:> cp <temporary_7.1.0_broker_instance_dir>/etc/management.xml <7.0_broker_instance_dir>/etc/
> cp <temporary_7.1.0_broker_instance_dir>/etc/management.xml <7.0_broker_instance_dir>/etc/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 复制
jolokia-access.xml文件:> cp <temporary_7.1.0_broker_instance_dir>/etc/jolokia-access.xml <7.0_broker_instance_dir>/etc/
> cp <temporary_7.1.0_broker_instance_dir>/etc/jolokia-access.xml <7.0_broker_instance_dir>/etc/Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在 7.0.x 代理的 <
broker_instance_dir> /etc/目录中打开bootstrap.xml文件。注释掉或删除以下两行:
<app url="jolokia" war="jolokia.war"/> <app url="hawtio" war="hawtio-no-slf4j.war"/>
<app url="jolokia" war="jolokia.war"/> <app url="hawtio" war="hawtio-no-slf4j.war"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加以下内容来替换上一步中删除的两行:
<app url="console" war="console.war"/>
<app url="console" war="console.war"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
启动您升级的代理:
> <broker_instance_dir>\bin\artemis-service.exe start
> <broker_instance_dir>\bin\artemis-service.exe startCopy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
有关创建代理实例的更多信息,请参阅创建代理实例。
2.2.3. 将代理实例从 7.1.x 升级到 7.2.0 复制链接链接已复制到粘贴板!
AMQ Broker 7.2.0 包括没有包括在 7.0.x 版本中的配置文件和设置。如果您正在运行 7.0.x 实例,您必须首先将这些代理实例从 7.0.x 升级到 7.1.0, 然后才能升级到 7.2.0。以下小节介绍了如何为不同的操作系统将 7.1.x 代理实例升级到 7.2.0。
从 AMQ Broker 7.1.0 开始,默认情况下,您只能从本地主机访问 AMQ 管理控制台。要了解配置远程访问控制台的信息,请参阅配置本地和远程访问 AMQ 管理控制台。
2.2.3.1. 从 7.1.x 升级到 Linux 上的 7.2.0 复制链接链接已复制到粘贴板!
您下载的存档名称可能与以下示例中使用的不同。
流程
- 按照 下载 AMQ Broker 归档中的说明,从红帽客户门户网站下载所需的存档。
将存档的所有者更改为拥有要升级 AMQ Broker 安装的同一用户。
sudo chown amq-broker:amq-broker amq-7.x.x.redhat-1.zip
sudo chown amq-broker:amq-broker amq-7.x.x.redhat-1.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将存档移到 AMQ Broker 原始安装过程中创建的目录。在以下示例中,使用目录
/opt/redhat。sudo mv amq-7.x.x.redhat-1.zip /opt/redhat
sudo mv amq-7.x.x.redhat-1.zip /opt/redhatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为目录所有者,提取压缩存档的内容。在以下示例中,用户
amq-broker使用 unzip 命令提取存档。su - amq-broker cd /opt/redhat unzip jboss-amq-7.x.x.redhat-1.zip
su - amq-broker cd /opt/redhat unzip jboss-amq-7.x.x.redhat-1.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果代理正在运行,请停止。
<broker_instance_dir>/bin/artemis stop
<broker_instance_dir>/bin/artemis stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将代理实例复制到当前用户的主目录来备份代理目录。
cp -r <broker_instance_dir> ~/
cp -r <broker_instance_dir> ~/Copy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)请注意代理的当前版本。代理停止后,日志文件的末尾会显示类似以下的行,该行可在 <
broker_instance_dir> /log/artemis.log中找到。INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.5.0.amq-720001-redhat-1 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.5.0.amq-720001-redhat-1 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> /etc/artemis.profile配置文件,将ARTEMIS_HOME属性设置为提取存档时创建的新目录。ARTEMIS_HOME='/opt/redhat/amq-7.x.x-redhat-1'
ARTEMIS_HOME='/opt/redhat/amq-7.x.x-redhat-1'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动升级的代理。
<broker_instance_dir>/bin/artemis run
<broker_instance_dir>/bin/artemis runCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开日志文件 <
broker_instance_dir> /log/artemis.log,并找到类似以下两行。请注意代理处于活动状态后日志中出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.5.0.amq-720001-redhat-1 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.5.0.amq-720001-redhat-1 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> /etc/artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例目录中的etc/和data/目录中。
2.2.3.2. 从 7.1.x 升级到 Windows 上的 7.2.0 复制链接链接已复制到粘贴板!
流程
- 按照 下载 AMQ Broker 归档中的说明,从红帽客户门户网站下载所需的存档。
- 使用文件管理器将存档移到您在 AMQ Broker 最后一次安装时创建的文件夹。
- 提取存档的内容。右键单击 .zip 文件并选择 Extract All。
输入以下命令来停止代理。
<broker_instance_dir>\bin\artemis-service.exe stop
<broker_instance_dir>\bin\artemis-service.exe stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用文件管理器备份代理。
-
右键单击 <
broker_instance_dir>文件夹,再选择 Copy。 - 右键单击同一窗口并选择" 粘贴 "。
-
右键单击 <
(可选)请注意代理的当前版本。代理停止后,日志文件的末尾会显示类似以下的行,该行可在 <
broker_instance_dir> \log\artemis.log中找到。INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.0.0.amq-700005-redhat-1 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.0.0.amq-700005-redhat-1 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd和 <broker_instance_dir> \bin\artemis-service.xml配置文件,将ARTEMIS_HOME属性设置为提取存档时创建的新目录。ARTEMIS_HOME=<install_dir>
ARTEMIS_HOME=<install_dir>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动升级的代理。
<broker_instance_dir>\bin\artemis-service.exe start
<broker_instance_dir>\bin\artemis-service.exe startCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开日志文件 <
broker_instance_dir> \log\artemis.log,并找到类似以下两行。请注意代理处于活动状态后日志中出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.5.0.amq-720001-redhat-1 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.5.0.amq-720001-redhat-1 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> \etc\artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例的目录中的\etc和\data目录中。
2.2.4. 将代理实例从 7.2.x 升级到 7.3.0 复制链接链接已复制到粘贴板!
以下小节介绍了如何针对不同的操作系统将 7.2.x 代理实例升级到 7.3.0。
2.2.4.1. 解决因为已弃用的分配控制台导致的异常 复制链接链接已复制到粘贴板!
从版本 7.3.6 开始,AMQ Broker 不再附带 Hawtio 分配控制台插件 assignment -hawtio-console.war。在以前的版本中,分配控制台用于管理 AMQ Interconnect。但是,AMQ Interconnect 现在使用自己的独立 web 控制台。这个更改会影响后续部分中的升级步骤。
如果您在将代理实例升级到 7.3.0 之前没有进一步的操作,升级过程会生成类似如下的异常:
2019-04-11 18:00:41,334 WARN [org.eclipse.jetty.webapp.WebAppContext] Failed startup of context o.e.j.w.WebAppContext@1ef3efa8{/dispatch-hawtio-console,null,null}{/opt/amqbroker/amq-broker-7.3.0/web/dispatch-hawtio-console.war}: java.io.FileNotFoundException: /opt/amqbroker/amq-broker-7.3.0/web/dispatch-hawtio-console.war.
2019-04-11 18:00:41,334 WARN [org.eclipse.jetty.webapp.WebAppContext] Failed startup of context o.e.j.w.WebAppContext@1ef3efa8{/dispatch-hawtio-console,null,null}{/opt/amqbroker/amq-broker-7.3.0/web/dispatch-hawtio-console.war}: java.io.FileNotFoundException: /opt/amqbroker/amq-broker-7.3.0/web/dispatch-hawtio-console.war.
您可以安全地忽略前面的例外,而不影响升级是否成功。
但是,如果您不希望在升级过程中看到这个异常,您必须首先删除现有代理实例的 bootstrap.xml 文件中的 Hawtio 分配控制台插件的引用。bootstrap.xml 文件位于代理实例的 {instance_directory}/etc/ 目录中。以下示例显示了 AMQ Broker 7.2.4 实例的 bootstrap.xml 文件的一些内容:
为了避免在将 AMQ Broker 升级到 7.1.0 时异常,请删除 < app url="dispatch-hawtio-console" war="dispatch-hawtio-console.war" />,如上例中所示。然后,保存修改后的 bootstrap 文件并启动升级过程,如以下部分所述。
从 AMQ Broker 7.1.0 开始,默认情况下,您只能从本地主机访问 AMQ 管理控制台。要了解配置远程访问控制台的信息,请参阅配置本地和远程访问 AMQ 管理控制台。
2.2.4.2. 从 7.2.x 升级到 Linux 上的 7.3.0 复制链接链接已复制到粘贴板!
您下载的存档名称可能与以下示例中使用的不同。
流程
- 按照 下载 AMQ Broker 归档中的说明,从红帽客户门户网站下载所需的存档。
将存档的所有者更改为拥有要升级 AMQ Broker 安装的同一用户。
sudo chown amq-broker:amq-broker amq-7.x.x.redhat-1.zip
sudo chown amq-broker:amq-broker amq-7.x.x.redhat-1.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将存档移到 AMQ Broker 原始安装过程中创建的目录。在以下示例中,使用目录
/opt/redhat。sudo mv amq-7.x.x.redhat-1.zip /opt/redhat
sudo mv amq-7.x.x.redhat-1.zip /opt/redhatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为目录所有者,提取压缩存档的内容。在以下示例中,用户
amq-broker使用 unzip 命令提取存档。su - amq-broker cd /opt/redhat unzip jboss-amq-7.x.x.redhat-1.zip
su - amq-broker cd /opt/redhat unzip jboss-amq-7.x.x.redhat-1.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果代理正在运行,请停止。
<broker_instance_dir>/bin/artemis stop
<broker_instance_dir>/bin/artemis stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将代理实例复制到当前用户的主目录来备份代理目录。
cp -r <broker_instance_dir> ~/
cp -r <broker_instance_dir> ~/Copy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)请注意代理的当前版本。代理停止后,日志文件的末尾会显示类似以下的行,该行可在 <
broker_instance_dir> /log/artemis.log中找到。INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.6.3.amq-720001-redhat-1 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.6.3.amq-720001-redhat-1 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> /etc/artemis.profile配置文件,将ARTEMIS_HOME属性设置为提取存档时创建的新目录。ARTEMIS_HOME='/opt/redhat/amq-7.x.x-redhat-1'
ARTEMIS_HOME='/opt/redhat/amq-7.x.x-redhat-1'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动升级的代理。
<broker_instance_dir>/bin/artemis run
<broker_instance_dir>/bin/artemis runCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开日志文件 <
broker_instance_dir> /log/artemis.log,并找到类似以下两行。请注意代理处于活动状态后日志中出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> /etc/artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例目录中的etc/和data/目录中。
2.2.4.3. 从 7.2.x 升级到 Windows 上的 7.3.0 复制链接链接已复制到粘贴板!
流程
- 按照 下载 AMQ Broker 归档中的说明,从红帽客户门户网站下载所需的存档。
- 使用文件管理器将存档移到您在 AMQ Broker 最后一次安装时创建的文件夹。
- 提取存档的内容。右键单击 .zip 文件并选择 Extract All。
输入以下命令来停止代理。
<broker_instance_dir>\bin\artemis-service.exe stop
<broker_instance_dir>\bin\artemis-service.exe stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用文件管理器备份代理。
-
右键单击 <
broker_instance_dir>文件夹,再选择 Copy。 - 右键单击同一窗口并选择" 粘贴 "。
-
右键单击 <
(可选)请注意代理的当前版本。代理停止后,日志文件的末尾会显示类似以下的行,该行可在 <
broker_instance_dir> \log\artemis.log中找到。INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.6.3.amq-720001-redhat-1 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.6.3.amq-720001-redhat-1 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd和 <broker_instance_dir> \bin\artemis-service.xml配置文件,将ARTEMIS_HOME属性设置为提取存档时创建的新目录。ARTEMIS_HOME=<install_dir>
ARTEMIS_HOME=<install_dir>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd配置文件,以设置 JAVA_ARGS 环境变量来引用正确的日志管理器版本。JAVA_ARGS=<install_dir>\lib\jboss-logmanager-2.0.3.Final-redhat-1.jar
JAVA_ARGS=<install_dir>\lib\jboss-logmanager-2.0.3.Final-redhat-1.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \bin\artemis-service.xml配置文件,以设置 bootstrap 类 path start 参数来引用正确的日志管理器版本。<startargument>Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.0.3.Final-redhat-1.jar</startargument>
<startargument>Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.0.3.Final-redhat-1.jar</startargument>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动升级的代理。
<broker_instance_dir>\bin\artemis-service.exe start
<broker_instance_dir>\bin\artemis-service.exe startCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开日志文件 <
broker_instance_dir> \log\artemis.log,并找到类似以下两行。请注意代理处于活动状态后日志中出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> \etc\artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例的目录中的\etc和\data目录中。
2.2.5. 将代理实例从 7.3.0 升级到 7.4.0 复制链接链接已复制到粘贴板!
以下小节介绍了如何为不同的操作系统将 7.3.0 代理实例升级到 7.4.0。
从 AMQ Broker 7.1.0 开始,默认情况下,您只能从本地主机访问 AMQ 管理控制台。要了解配置远程访问控制台的信息,请参阅配置本地和远程访问 AMQ 管理控制台。
2.2.5.1. 在 Linux 上从 7.3.0 升级到 7.4.0 复制链接链接已复制到粘贴板!
您下载的存档名称可能与以下示例中使用的不同。
流程
- 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档中 的说明进行操作。
将存档的所有者更改为拥有要升级 AMQ Broker 安装的同一用户。以下示例显示了名为
amq-broker的用户。sudo chown amq-broker:amq-broker amq-broker-7.x.x.redhat-1.zip
sudo chown amq-broker:amq-broker amq-broker-7.x.x.redhat-1.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将存档移到 AMQ Broker 原始安装过程中创建的目录。以下示例使用
/opt/redhat。sudo mv amq-broker-7.x.x.redhat-1.zip /opt/redhat
sudo mv amq-broker-7.x.x.redhat-1.zip /opt/redhatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为目录所有者,提取压缩存档的内容。在以下示例中,用户
amq-broker使用unzip命令提取存档。su - amq-broker cd /opt/redhat unzip amq-broker-7.x.x.redhat-1.zip
su - amq-broker cd /opt/redhat unzip amq-broker-7.x.x.redhat-1.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果代理正在运行,请停止它。
<broker_instance_dir>/bin/artemis stop
<broker_instance_dir>/bin/artemis stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将代理实例复制到当前用户的主目录来备份代理目录。
cp -r <broker_instance_dir> ~/
cp -r <broker_instance_dir> ~/Copy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> /log/artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> /etc/artemis.profile配置文件。将
ARTEMIS_HOME属性设置为提取存档时创建的新目录。ARTEMIS_HOME='/opt/redhat/amq-broker-7.x.x-redhat-1'
ARTEMIS_HOME='/opt/redhat/amq-broker-7.x.x-redhat-1'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
JAVA_ARGS属性。添加 bootstrap 类路径参数,该参数引用日志管理器的依赖文件。-Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.1.Final-redhat-00001.jar
-Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.1.Final-redhat-00001.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow
编辑 &
lt;broker_instance_dir> /etc/bootstrap.xml配置文件。在 <web> 配置元素中,为 AMQ Broker 添加对指标插件文件的引用。<app url="metrics" war="metrics.war"/>
<app url="metrics" war="metrics.war"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动升级的代理。
<broker_instance_dir>/bin/artemis run
<broker_instance_dir>/bin/artemis runCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>/log/artemis.log文件。找到类似以下示例的两行:请注意,当代理处于活动状态时,日志中会出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> /etc/artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例目录中的etc/和data/目录中。
2.2.5.2. 在 Windows 上从 7.3.0 升级到 7.4.0 复制链接链接已复制到粘贴板!
流程
- 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档中 的说明进行操作。
- 使用文件管理器将存档移到您在 AMQ Broker 最后一次安装时创建的文件夹。
- 提取存档的内容。右键单击 .zip 文件并选择 Extract All。
如果代理正在运行,请停止它。
<broker_instance_dir>\bin\artemis-service.exe stop
<broker_instance_dir>\bin\artemis-service.exe stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用文件管理器备份代理。
-
右键单击 <
broker_instance_dir>文件夹,再选择 Copy。 - 右键单击同一窗口并选择" 粘贴 "。
-
右键单击 <
(可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> \log\artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd和<broker_instance_dir> \bin\artemis-service.xml配置文件。将ARTEMIS_HOME属性设置为提取存档时创建的新目录。ARTEMIS_HOME=<install_dir>
ARTEMIS_HOME=<install_dir>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd配置文件。设置 JAVA_ARGS 环境变量,以引用正确的日志管理器版本和依赖文件。JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.1.Final-redhat-00001.jar
JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.1.Final-redhat-00001.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \bin\artemis-service.xml配置文件。设置 bootstrap 类路径启动参数,以引用正确的日志管理器版本和依赖文件。<startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.1.Final-redhat-00001.jar</startargument>
<startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.1.Final-redhat-00001.jar</startargument>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\bootstrap.xml配置文件。在 <web> 配置元素中,为 AMQ Broker 添加对指标插件文件的引用。<app url="metrics" war="metrics.war"/>
<app url="metrics" war="metrics.war"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动升级的代理。
<broker_instance_dir>\bin\artemis-service.exe start
<broker_instance_dir>\bin\artemis-service.exe startCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>\log\artemis.log文件。找到类似以下示例的两行:请注意,当代理处于活动状态时,日志中会出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> \etc\artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例的目录中的\etc和\data目录中。
2.3. 将代理实例从 7.4.0 升级到 7.4.x 复制链接链接已复制到粘贴板!
AMQ Broker 7.4 已指定为 Long Term Support (LTS)发行版本。在一系列微发行版本(7.4.1、7.4.1、7.4 等)中,为 AMQ Broker 7.4 提供了程序错误修正和安全公告,至少有 12 个月。这意味着,您可以在不需要升级到新的次版本的情况下,为 AMQ Broker 获得最新的程序错误修复和安全公告。如需更多信息,请参阅 AMQ Broker 的长期支持。
从 AMQ Broker 7.1.0 开始,默认情况下,您只能从本地主机访问 AMQ 管理控制台。要了解配置远程访问控制台的信息,请参阅配置本地和远程访问 AMQ 管理控制台。
以下小节介绍了如何针对不同的操作系统将 7.4.0 代理实例升级到 7.4.x。
2.3.1. 从 7.4.0 升级到 Linux 上的 7.4.x 复制链接链接已复制到粘贴板!
您下载的存档名称可能与以下示例中使用的不同。
流程
- 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档中 的说明进行操作。
将存档的所有者更改为拥有要升级 AMQ Broker 安装的同一用户。以下示例显示了名为
amq-broker的用户。sudo chown amq-broker:amq-broker amq-broker-7.4.x.redhat-1.zip
sudo chown amq-broker:amq-broker amq-broker-7.4.x.redhat-1.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将存档移到 AMQ Broker 原始安装过程中创建的目录。以下示例使用
/opt/redhat。sudo mv amq-broker-7.4.x.redhat-1.zip /opt/redhat
sudo mv amq-broker-7.4.x.redhat-1.zip /opt/redhatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为目录所有者,提取压缩存档的内容。在以下示例中,用户
amq-broker使用unzip命令提取存档。su - amq-broker cd /opt/redhat unzip amq-broker-7.4.x.redhat-1.zip
su - amq-broker cd /opt/redhat unzip amq-broker-7.4.x.redhat-1.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果代理正在运行,请停止它。
<broker_instance_dir>/bin/artemis stop
<broker_instance_dir>/bin/artemis stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将代理实例复制到当前用户的主目录来备份代理目录。
cp -r <broker_instance_dir> ~/
cp -r <broker_instance_dir> ~/Copy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> /log/artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> /etc/artemis.profile配置文件。将ARTEMIS_HOME属性设置为提取存档时创建的新目录。ARTEMIS_HOME='/opt/redhat/amq-broker-7.4.x-redhat-1'
ARTEMIS_HOME='/opt/redhat/amq-broker-7.4.x-redhat-1'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动升级的代理。
<broker_instance_dir>/bin/artemis run
<broker_instance_dir>/bin/artemis runCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>/log/artemis.log文件。找到类似以下示例的两行:请注意,当代理处于活动状态时,日志中会出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> /etc/artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例目录中的etc/和data/目录中。
2.3.2. 从 7.4.0 升级到 Windows 上的 7.4.x 复制链接链接已复制到粘贴板!
流程
- 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档中 的说明进行操作。
- 使用文件管理器将存档移到您在 AMQ Broker 最后一次安装时创建的文件夹。
- 提取存档的内容。右键单击 .zip 文件并选择 Extract All。
如果代理正在运行,请停止它。
<broker_instance_dir>\bin\artemis-service.exe stop
<broker_instance_dir>\bin\artemis-service.exe stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用文件管理器备份代理。
-
右键单击 <
broker_instance_dir>文件夹,再选择 Copy。 - 右键单击同一窗口并选择" 粘贴 "。
-
右键单击 <
(可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> \log\artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd和<broker_instance_dir> \bin\artemis-service.xml配置文件。将ARTEMIS_HOME属性设置为提取存档时创建的新目录。ARTEMIS_HOME=<install_dir>
ARTEMIS_HOME=<install_dir>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动升级的代理。
<broker_instance_dir>\bin\artemis-service.exe start
<broker_instance_dir>\bin\artemis-service.exe startCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>\log\artemis.log文件。找到类似以下示例的两行:请注意,当代理处于活动状态时,日志中会出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> \etc\artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例的目录中的\etc和\data目录中。
2.4. 将代理实例从 7.4.x 升级到 7.5.0 复制链接链接已复制到粘贴板!
以下小节介绍了如何为不同的操作系统将 7.4.x 代理实例升级到 7.5.0。
从 AMQ Broker 7.1.0 开始,默认情况下,您只能从本地主机访问 AMQ 管理控制台。要了解配置远程访问控制台的信息,请参阅配置本地和远程访问 AMQ 管理控制台。
2.4.1. 在 Linux 上从 7.4.x 升级到 7.5.0 复制链接链接已复制到粘贴板!
您下载的存档名称可能与以下示例中使用的不同。
流程
- 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档中 的说明进行操作。
将存档的所有者更改为拥有要升级 AMQ Broker 安装的同一用户。以下示例显示了名为
amq-broker的用户。sudo chown amq-broker:amq-broker amq-broker-7.5.0.redhat-1.zip
sudo chown amq-broker:amq-broker amq-broker-7.5.0.redhat-1.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将存档移到 AMQ Broker 原始安装过程中创建的目录。以下示例使用
/opt/redhat。sudo mv amq-broker-7.5.0.redhat-1.zip /opt/redhat
sudo mv amq-broker-7.5.0.redhat-1.zip /opt/redhatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为目录所有者,提取压缩存档的内容。在以下示例中,用户
amq-broker使用unzip命令提取存档。su - amq-broker cd /opt/redhat unzip amq-broker-7.5.0.redhat-1.zip
su - amq-broker cd /opt/redhat unzip amq-broker-7.5.0.redhat-1.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果代理正在运行,请停止它。
<broker_instance_dir>/bin/artemis stop
<broker_instance_dir>/bin/artemis stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将代理实例复制到当前用户的主目录来备份代理目录。
cp -r <broker_instance_dir> ~/
cp -r <broker_instance_dir> ~/Copy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> /log/artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> /etc/artemis.profile配置文件。将
ARTEMIS_HOME属性设置为提取存档时创建的新目录。ARTEMIS_HOME='/opt/redhat/amq-broker-7.5.0-redhat-1'
ARTEMIS_HOME='/opt/redhat/amq-broker-7.5.0-redhat-1'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
JAVA_ARGS属性。添加 bootstrap 类路径参数,该参数引用日志管理器的依赖文件。-Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.2.Final-redhat-00001.jar
-Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.2.Final-redhat-00001.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow
启动升级的代理。
<broker_instance_dir>/bin/artemis run
<broker_instance_dir>/bin/artemis runCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>/log/artemis.log文件。找到类似以下示例的两行:请注意,当代理处于活动状态时,日志中会出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> /etc/artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例目录中的etc/和data/目录中。
2.4.2. 从 7.4.x 升级到 Windows 上的 7.5.0 复制链接链接已复制到粘贴板!
流程
- 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档中 的说明进行操作。
- 使用文件管理器将存档移到您在 AMQ Broker 最后一次安装时创建的文件夹。
- 提取存档的内容。右键单击 .zip 文件并选择 Extract All。
如果代理正在运行,请停止它。
<broker_instance_dir>\bin\artemis-service.exe stop
<broker_instance_dir>\bin\artemis-service.exe stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用文件管理器备份代理。
-
右键单击 <
broker_instance_dir>文件夹,再选择 Copy。 - 右键单击同一窗口并选择" 粘贴 "。
-
右键单击 <
(可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> \log\artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.7.0.redhat-00054 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd和<broker_instance_dir> \bin\artemis-service.xml配置文件。将ARTEMIS_HOME属性设置为提取存档时创建的新目录。ARTEMIS_HOME=<install_dir>
ARTEMIS_HOME=<install_dir>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd配置文件。设置JAVA_ARGS环境变量,以引用正确的日志管理器版本和依赖文件。JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00001.jar
JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00001.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \bin\artemis-service.xml配置文件。设置 bootstrap 类路径启动参数,以引用正确的日志管理器版本和依赖文件。<startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00001.jar</startargument>
<startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00001.jar</startargument>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动升级的代理。
<broker_instance_dir>\bin\artemis-service.exe start
<broker_instance_dir>\bin\artemis-service.exe startCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>\log\artemis.log文件。找到类似以下示例的两行:请注意,当代理处于活动状态时,日志中会出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> \etc\artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例的目录中的\etc和\data目录中。
2.5. 将代理实例从 7.5.0 升级到 7.6.0 复制链接链接已复制到粘贴板!
以下小节介绍了如何针对不同的操作系统将 7.5.0 代理实例升级到 7.6.0。
从 AMQ Broker 7.1.0 开始,默认情况下,您只能从本地主机访问 AMQ 管理控制台。要了解配置远程访问控制台的信息,请参阅配置本地和远程访问 AMQ 管理控制台。
2.5.1. 在 Linux 上从 7.5.0 升级到 7.6.0 复制链接链接已复制到粘贴板!
您下载的存档名称可能与以下示例中使用的不同。
流程
- 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档中 的说明进行操作。
将存档的所有者更改为拥有要升级 AMQ Broker 安装的同一用户。以下示例显示了名为
amq-broker的用户。sudo chown amq-broker:amq-broker amq-broker-7.6.0.redhat-1.zip
sudo chown amq-broker:amq-broker amq-broker-7.6.0.redhat-1.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将存档移到 AMQ Broker 原始安装过程中创建的目录。以下示例使用
/opt/redhat。sudo mv amq-broker-7.6.0.redhat-1.zip /opt/redhat
sudo mv amq-broker-7.6.0.redhat-1.zip /opt/redhatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为目录所有者,提取压缩存档的内容。在以下示例中,用户
amq-broker使用unzip命令提取存档。su - amq-broker cd /opt/redhat unzip amq-broker-7.6.0.redhat-1.zip
su - amq-broker cd /opt/redhat unzip amq-broker-7.6.0.redhat-1.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果代理正在运行,请停止它。
<broker_instance_dir>/bin/artemis stop
<broker_instance_dir>/bin/artemis stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将代理实例复制到当前用户的主目录来备份代理目录。
cp -r <broker_instance_dir> ~/
cp -r <broker_instance_dir> ~/Copy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> /log/artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00054 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> /etc/artemis.profile配置文件。将
ARTEMIS_HOME属性设置为提取存档时创建的新目录。ARTEMIS_HOME='/opt/redhat/amq-broker-7.6.0-redhat-1'
ARTEMIS_HOME='/opt/redhat/amq-broker-7.6.0-redhat-1'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑
JAVA_ARGS属性。添加 bootstrap 类路径参数,该参数引用日志管理器的依赖文件。-Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.2.Final-redhat-00002.jar
-Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.2.Final-redhat-00002.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow
启动升级的代理。
<broker_instance_dir>/bin/artemis run
<broker_instance_dir>/bin/artemis runCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>/log/artemis.log文件。找到类似以下示例的两行:请注意,当代理处于活动状态时,日志中会出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.11.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.11.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> /etc/artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例目录中的etc/和data/目录中。
2.5.2. 在 Windows 上从 7.5.0 升级到 7.6.0 复制链接链接已复制到粘贴板!
流程
- 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档中 的说明进行操作。
- 使用文件管理器将存档移到您在 AMQ Broker 最后一次安装时创建的文件夹。
- 提取存档的内容。右键单击 .zip 文件并选择 Extract All。
如果代理正在运行,请停止它。
<broker_instance_dir>\bin\artemis-service.exe stop
<broker_instance_dir>\bin\artemis-service.exe stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用文件管理器备份代理。
-
右键单击 <
broker_instance_dir>文件夹,再选择 Copy。 - 右键单击同一窗口并选择" 粘贴 "。
-
右键单击 <
(可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> \log\artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00054 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.9.0.redhat-00054 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd和<broker_instance_dir> \bin\artemis-service.xml配置文件。将ARTEMIS_HOME属性设置为提取存档时创建的新目录。ARTEMIS_HOME=<install_dir>
ARTEMIS_HOME=<install_dir>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd配置文件。设置JAVA_ARGS环境变量,以引用正确的日志管理器版本和依赖文件。JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar
JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \bin\artemis-service.xml配置文件。设置 bootstrap 类路径启动参数,以引用正确的日志管理器版本和依赖文件。<startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar</startargument>
<startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar</startargument>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动升级的代理。
<broker_instance_dir>\bin\artemis-service.exe start
<broker_instance_dir>\bin\artemis-service.exe startCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>\log\artemis.log文件。找到类似以下示例的两行:请注意,当代理处于活动状态时,日志中会出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.11.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.11.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> \etc\artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例的目录中的\etc和\data目录中。
2.6. 将代理实例从 7.6.0 升级到 7.7.0 复制链接链接已复制到粘贴板!
以下小节介绍了如何为不同的操作系统将 7.6.0 代理实例升级到 7.7.0。
从 AMQ Broker 7.1.0 开始,默认情况下,您只能从本地主机访问 AMQ 管理控制台。要了解配置远程访问控制台的信息,请参阅配置本地和远程访问 AMQ 管理控制台。
2.6.1. 在 Linux 上从 7.6.0 升级到 7.7.0 复制链接链接已复制到粘贴板!
您下载的存档名称可能与以下示例中使用的不同。
流程
- 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档中 的说明进行操作。
将存档的所有者更改为拥有要升级 AMQ Broker 安装的同一用户。以下示例显示了名为
amq-broker的用户。sudo chown amq-broker:amq-broker amq-broker-7.7.0.redhat-1.zip
sudo chown amq-broker:amq-broker amq-broker-7.7.0.redhat-1.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将存档移到 AMQ Broker 原始安装过程中创建的目录。以下示例使用
/opt/redhat。sudo mv amq-broker-7.7.0.redhat-1.zip /opt/redhat
sudo mv amq-broker-7.7.0.redhat-1.zip /opt/redhatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为目录所有者,提取压缩存档的内容。在以下示例中,用户
amq-broker使用unzip命令提取存档。su - amq-broker cd /opt/redhat unzip amq-broker-7.7.0.redhat-1.zip
su - amq-broker cd /opt/redhat unzip amq-broker-7.7.0.redhat-1.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果代理正在运行,请停止它。
<broker_instance_dir>/bin/artemis stop
<broker_instance_dir>/bin/artemis stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将代理实例复制到当前用户的主目录来备份代理目录。
cp -r <broker_instance_dir> ~/
cp -r <broker_instance_dir> ~/Copy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> /log/artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.11.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.11.0.redhat-00001 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> /etc/artemis.profile配置文件。将
ARTEMIS_HOME属性设置为提取存档时创建的新目录。例如:ARTEMIS_HOME='/opt/redhat/amq-broker-7.7.0-redhat-1'
ARTEMIS_HOME='/opt/redhat/amq-broker-7.7.0-redhat-1'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 找到
JAVA_ARGS属性。确保 bootstrap 类路径参数引用日志管理器从属文件所需的版本,如下所示。-Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.2.Final-redhat-00002.jar
-Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.2.Final-redhat-00002.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow
编辑 &
lt;broker_instance_dir> /etc/logging.properties配置文件。在要配置的额外日志记录器列表中,包括 AMQ Broker 7.7.0 中添加的
org.apache.activemq.audit.resource资源日志记录器。loggers=org.eclipse.jetty,org.jboss.logging,org.apache.activemq.artemis.core.server,org.apache.activemq.artemis.utils,org.apache.activemq.artemis.journal,org.apache.activemq.artemis.jms.server,org.apache.activemq.artemis.integration.bootstrap,org.apache.activemq.audit.base,org.apache.activemq.audit.message,org.apache.activemq.audit.resource
loggers=org.eclipse.jetty,org.jboss.logging,org.apache.activemq.artemis.core.server,org.apache.activemq.artemis.utils,org.apache.activemq.artemis.journal,org.apache.activemq.artemis.jms.server,org.apache.activemq.artemis.integration.bootstrap,org.apache.activemq.audit.base,org.apache.activemq.audit.message,org.apache.activemq.audit.resourceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Console handler 配置部分 之前,为资源日志记录器添加默认配置。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
启动升级的代理。
<broker_instance_dir>/bin/artemis run
<broker_instance_dir>/bin/artemis runCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>/log/artemis.log文件。找到类似以下示例的两行:请注意,当代理处于活动状态时,日志中会出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Mesq.audit.resource.handlers=AUDIT_FILE logger.org.apache.activemq.audit.resource.useParentHandlers=false sage Broker version 2.13.0.redhat-00003 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Mesq.audit.resource.handlers=AUDIT_FILE logger.org.apache.activemq.audit.resource.useParentHandlers=false sage Broker version 2.13.0.redhat-00003 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> /etc/artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例目录中的etc/和data/目录中。
2.6.2. 在 Windows 上从 7.6.0 升级到 7.7.0 复制链接链接已复制到粘贴板!
流程
- 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档中 的说明进行操作。
- 使用文件管理器将存档移到您在 AMQ Broker 最后一次安装时创建的文件夹。
- 提取存档的内容。右键单击 .zip 文件并选择 Extract All。
如果代理正在运行,请停止它。
<broker_instance_dir>\bin\artemis-service.exe stop
<broker_instance_dir>\bin\artemis-service.exe stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用文件管理器备份代理。
-
右键单击 <
broker_instance_dir>文件夹,再选择 Copy。 - 右键单击同一窗口并选择" 粘贴 "。
-
右键单击 <
(可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> \log\artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.11.0.redhat-00001 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.11.0.redhat-00001 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd和<broker_instance_dir> \bin\artemis-service.xml配置文件。将ARTEMIS_HOME属性设置为提取存档时创建的新目录。ARTEMIS_HOME=<install_dir>
ARTEMIS_HOME=<install_dir>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd配置文件。确保JAVA_ARGS环境变量引用日志管理器和依赖文件的正确版本,如下所示。JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar
JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \bin\artemis-service.xml配置文件。确保 bootstrap 类路径 start 参数引用日志管理器和依赖文件的正确版本,如下所示。<startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar</startargument>
<startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar</startargument>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\logging.properties配置文件。在要配置的额外日志记录器列表中,包括 AMQ Broker 7.7.0 中添加的
org.apache.activemq.audit.resource资源日志记录器。loggers=org.eclipse.jetty,org.jboss.logging,org.apache.activemq.artemis.core.server,org.apache.activemq.artemis.utils,org.apache.activemq.artemis.journal,org.apache.activemq.artemis.jms.server,org.apache.activemq.artemis.integration.bootstrap,org.apache.activemq.audit.base,org.apache.activemq.audit.message,org.apache.activemq.audit.resource
loggers=org.eclipse.jetty,org.jboss.logging,org.apache.activemq.artemis.core.server,org.apache.activemq.artemis.utils,org.apache.activemq.artemis.journal,org.apache.activemq.artemis.jms.server,org.apache.activemq.artemis.integration.bootstrap,org.apache.activemq.audit.base,org.apache.activemq.audit.message,org.apache.activemq.audit.resourceCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Console handler 配置部分 之前,为资源日志记录器添加默认配置。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
启动升级的代理。
<broker_instance_dir>\bin\artemis-service.exe start
<broker_instance_dir>\bin\artemis-service.exe startCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>\log\artemis.log文件。找到类似以下示例的两行:请注意,当代理处于活动状态时,日志中会出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.13.0.redhat-00003 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.13.0.redhat-00003 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> \etc\artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例的目录中的\etc和\data目录中。
2.7. 将代理实例从 7.7.0 升级到 7.8.0 复制链接链接已复制到粘贴板!
以下小节介绍了如何针对不同的操作系统将 7.7.0 代理实例升级到 7.8.0。
从 AMQ Broker 7.1.0 开始,默认情况下,您只能从本地主机访问 AMQ 管理控制台。要了解配置远程访问控制台的信息,请参阅配置本地和远程访问 AMQ 管理控制台。
2.7.1. 在 Linux 上从 7.7.0 升级到 7.8.0 复制链接链接已复制到粘贴板!
您下载的存档名称可能与以下示例中使用的不同。
流程
- 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档中 的说明进行操作。
将存档的所有者更改为拥有要升级 AMQ Broker 安装的同一用户。以下示例显示了名为
amq-broker的用户。sudo chown amq-broker:amq-broker amq-broker-7.8.0.redhat-1.zip
sudo chown amq-broker:amq-broker amq-broker-7.8.0.redhat-1.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将存档移到 AMQ Broker 原始安装过程中创建的目录。以下示例使用
/opt/redhat。sudo mv amq-broker-7.8.0.redhat-1.zip /opt/redhat
sudo mv amq-broker-7.8.0.redhat-1.zip /opt/redhatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为目录所有者,提取压缩存档的内容。在以下示例中,用户
amq-broker使用unzip命令提取存档。su - amq-broker cd /opt/redhat unzip amq-broker-7.8.0.redhat-1.zip
su - amq-broker cd /opt/redhat unzip amq-broker-7.8.0.redhat-1.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果代理正在运行,请停止它。
<broker_instance_dir>/bin/artemis stop
<broker_instance_dir>/bin/artemis stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将代理实例复制到当前用户的主目录来备份代理目录。
cp -r <broker_instance_dir> ~/
cp -r <broker_instance_dir> ~/Copy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> /log/artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.13.0.redhat-00003 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.13.0.redhat-00003 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> /etc/artemis.profile配置文件。将
ARTEMIS_HOME属性设置为提取存档时创建的新目录。例如:ARTEMIS_HOME='/opt/redhat/amq-broker-7.8.0-redhat-1'
ARTEMIS_HOME='/opt/redhat/amq-broker-7.8.0-redhat-1'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 找到
JAVA_ARGS属性。确保 bootstrap 类路径参数引用日志管理器从属文件所需的版本,如下所示。-Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.2.Final-redhat-00002.jar
-Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.2.Final-redhat-00002.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow
编辑 &
lt;broker_instance_dir> /etc/bootstrap.xml配置文件。在web元素中,更新 7.8 中 AMQ 管理控制台所需的.war文件的名称。<web bind="http://localhost:8161" path="web"> ... <app url="console" war="hawtio.war"/> ... </web><web bind="http://localhost:8161" path="web"> ... <app url="console" war="hawtio.war"/> ... </web>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动升级的代理。
<broker_instance_dir>/bin/artemis run
<broker_instance_dir>/bin/artemis runCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>/log/artemis.log文件。找到类似以下示例的两行:请注意,当代理处于活动状态时,日志中会出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Mesq.audit.resource.handlers=AUDIT_FILE logger.org.apache.activemq.audit.resource.useParentHandlers=false sage Broker version 2.16.0.redhat-00007 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Mesq.audit.resource.handlers=AUDIT_FILE logger.org.apache.activemq.audit.resource.useParentHandlers=false sage Broker version 2.16.0.redhat-00007 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> /etc/artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例目录中的etc/和data/目录中。
2.7.2. 在 Windows 上从 7.7.0 升级到 7.8.0 复制链接链接已复制到粘贴板!
流程
- 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档中 的说明进行操作。
- 使用文件管理器将存档移到您在 AMQ Broker 最后一次安装时创建的文件夹。
- 提取存档的内容。右键单击 .zip 文件并选择 Extract All。
如果代理正在运行,请停止它。
<broker_instance_dir>\bin\artemis-service.exe stop
<broker_instance_dir>\bin\artemis-service.exe stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用文件管理器备份代理。
-
右键单击 <
broker_instance_dir>文件夹,再选择 Copy。 - 右键单击同一窗口并选择" 粘贴 "。
-
右键单击 <
(可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> \log\artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.13.0.redhat-00003 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.13.0.redhat-00003 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd和<broker_instance_dir> \bin\artemis-service.xml配置文件。将ARTEMIS_HOME属性设置为提取存档时创建的新目录。ARTEMIS_HOME=<install_dir>
ARTEMIS_HOME=<install_dir>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd配置文件。确保JAVA_ARGS环境变量引用日志管理器和依赖文件的正确版本,如下所示。JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar
JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \bin\artemis-service.xml配置文件。确保 bootstrap 类路径 start 参数引用日志管理器和依赖文件的正确版本,如下所示。<startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar</startargument>
<startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar</startargument>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\bootstrap.xml配置文件。在web元素中,更新 7.8 中 AMQ 管理控制台所需的.war文件的名称。<web bind="http://localhost:8161" path="web"> ... <app url="console" war="hawtio.war"/> ... </web><web bind="http://localhost:8161" path="web"> ... <app url="console" war="hawtio.war"/> ... </web>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动升级的代理。
<broker_instance_dir>\bin\artemis-service.exe start
<broker_instance_dir>\bin\artemis-service.exe startCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>\log\artemis.log文件。找到类似以下示例的两行:请注意,当代理处于活动状态时,日志中会出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.16.0.redhat-00007 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.16.0.redhat-00007 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> \etc\artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例的目录中的\etc和\data目录中。
2.8. 将代理实例从 7.8.x 升级到 7.9.x 复制链接链接已复制到粘贴板!
以下小节介绍了如何为不同的操作系统将 7.8.x 代理实例升级到 7.9.x。
从 AMQ Broker 7.1.0 开始,默认情况下,您只能从本地主机访问 AMQ 管理控制台。要了解配置远程访问控制台的信息,请参阅配置本地和远程访问 AMQ 管理控制台。
2.8.1. 在 Linux 上从 7.8.x 升级到 7.9.x 复制链接链接已复制到粘贴板!
您下载的存档名称可能与以下示例中使用的不同。
流程
- 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档中 的说明进行操作。
将存档的所有者更改为拥有要升级 AMQ Broker 安装的同一用户。以下示例显示了名为
amq-broker的用户。sudo chown amq-broker:amq-broker amq-broker-7.x.x-bin.zip
sudo chown amq-broker:amq-broker amq-broker-7.x.x-bin.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将存档移到 AMQ Broker 原始安装过程中创建的目录。以下示例使用
/opt/redhat。sudo mv amq-broker-7.x.x-bin.zip /opt/redhat
sudo mv amq-broker-7.x.x-bin.zip /opt/redhatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为目录所有者,提取压缩存档的内容。在以下示例中,用户
amq-broker使用unzip命令提取存档。su - amq-broker cd /opt/redhat unzip amq-broker-7.x.x-bin.zip
su - amq-broker cd /opt/redhat unzip amq-broker-7.x.x-bin.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果代理正在运行,请停止它。
<broker_instance_dir>/bin/artemis stop
<broker_instance_dir>/bin/artemis stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将代理实例复制到当前用户的主目录来备份代理目录。
cp -r <broker_instance_dir> ~/
cp -r <broker_instance_dir> ~/Copy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> /log/artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.13.0.redhat-00003 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.13.0.redhat-00003 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> /etc/artemis.profile配置文件。将
ARTEMIS_HOME属性设置为提取存档时创建的新目录。例如:ARTEMIS_HOME='/opt/redhat/amq-broker-7.x.x-bin'
ARTEMIS_HOME='/opt/redhat/amq-broker-7.x.x-bin'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 找到
JAVA_ARGS属性。确保 bootstrap 类路径参数引用日志管理器从属文件所需的版本,如下所示。-Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.2.Final-redhat-00002.jar
-Xbootclasspath/a:$ARTEMIS_HOME/lib/wildfly-common-1.5.2.Final-redhat-00002.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow
编辑 &
lt;broker_instance_dir> /etc/bootstrap.xml配置文件。在web元素中,更新 AMQ Management Console in 7.9 中 AMQ Management Console 所需的.war文件的名称。<web bind="http://localhost:8161" path="web"> ... <app url="console" war="hawtio.war"/> ... </web><web bind="http://localhost:8161" path="web"> ... <app url="console" war="hawtio.war"/> ... </web>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动升级的代理。
<broker_instance_dir>/bin/artemis run
<broker_instance_dir>/bin/artemis runCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>/log/artemis.log文件。找到类似以下示例的两行:请注意,当代理处于活动状态时,日志中会出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Mes INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... sage Broker version 2.18.0.redhat-00010 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Mes INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... sage Broker version 2.18.0.redhat-00010 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> /etc/artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例目录中的etc/和data/目录中。
2.8.2. 从 7.8.x 升级到 Windows 上的 7.9.x 复制链接链接已复制到粘贴板!
流程
- 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档中 的说明进行操作。
- 使用文件管理器将存档移到您在 AMQ Broker 最后一次安装时创建的文件夹。
- 提取存档的内容。右键单击 .zip 文件并选择 Extract All。
如果代理正在运行,请停止它。
<broker_instance_dir>\bin\artemis-service.exe stop
<broker_instance_dir>\bin\artemis-service.exe stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用文件管理器备份代理。
-
右键单击 <
broker_instance_dir>文件夹 amd,选择 Copy。 - 右键单击同一窗口并选择" 粘贴 "。
-
右键单击 <
(可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> \log\artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.13.0.redhat-00003 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.13.0.redhat-00003 [4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd和<broker_instance_dir> \bin\artemis-service.xml配置文件。将ARTEMIS_HOME属性设置为提取存档时创建的新目录。ARTEMIS_HOME=<install_dir>
ARTEMIS_HOME=<install_dir>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd配置文件。确保JAVA_ARGS环境变量引用日志管理器和依赖文件的正确版本,如下所示。JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar
JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \bin\artemis-service.xml配置文件。确保 bootstrap 类路径 start 参数引用日志管理器和依赖文件的正确版本,如下所示。<startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar</startargument>
<startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar</startargument>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\bootstrap.xml配置文件。在web元素中,更新 AMQ Management Console in 7.9 中 AMQ Management Console 所需的.war文件的名称。<web bind="http://localhost:8161" path="web"> ... <app url="console" war="hawtio.war"/> ... </web><web bind="http://localhost:8161" path="web"> ... <app url="console" war="hawtio.war"/> ... </web>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动升级的代理。
<broker_instance_dir>\bin\artemis-service.exe start
<broker_instance_dir>\bin\artemis-service.exe startCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>\log\artemis.log文件。找到类似以下示例的两行:请注意,当代理处于活动状态时,日志中会出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.18.0.redhat-00010 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.18.0.redhat-00010 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> \etc\artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例的目录中的\etc和\data目录中。
2.9. 将代理实例从 7.9.x 升级到 7.10.x 复制链接链接已复制到粘贴板!
以下小节介绍了如何针对不同的操作系统将 7.9.x 代理实例升级到 7.10.x。
从 AMQ Broker 7.1.0 开始,默认情况下,您只能从本地主机访问 AMQ 管理控制台。要了解配置远程访问控制台的信息,请参阅配置本地和远程访问 AMQ 管理控制台。
2.9.1. 从 7.9.x 升级到 Linux 上的 7.10.x 复制链接链接已复制到粘贴板!
您下载的存档名称可能与以下示例中使用的不同。
先决条件
- 至少 AMQ Broker 7.10.x 需要运行 Java 版本 11。确保每个 AMQ Broker 主机都在运行 Java 版本 11 或更高版本。有关支持的配置的更多信息,请参阅 Red Hat AMQ Broker 7 支持的配置。
-
如果 AMQ Broker 7.9 配置为保留数据库中的消息数据,则 HOLDER_EXPIRATION_TIME 列的数据类型是节点管理器数据库表中
的时间戳。在 AMQ Broker 7.10 中,列的数据类型更改为数字。在升级到 AMQ Broker 7.10.x 之前,您必须丢弃节点管理器表,即将其从数据库中删除。丢弃表后,重启代理时会使用新的 schema 重新创建。在共享存储高可用性(HA)配置中,节点管理器表在代理间共享。因此,您必须确保在丢弃表前停止共享表的所有代理。以下示例丢弃一个名为NODE_MANAGER_TABLE的节点管理器表:
DROP TABLE NODE_MANAGER_TABLE
DROP TABLE NODE_MANAGER_TABLE
流程
- 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档中 的说明进行操作。
将存档的所有者更改为拥有要升级 AMQ Broker 安装的同一用户。以下示例显示了名为
amq-broker的用户。sudo chown amq-broker:amq-broker amq-broker-7.x.x-bin.zip
sudo chown amq-broker:amq-broker amq-broker-7.x.x-bin.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将存档移到 AMQ Broker 原始安装过程中创建的目录。以下示例使用
/opt/redhat。sudo mv amq-broker-7.x.x-bin.zip /opt/redhat
sudo mv amq-broker-7.x.x-bin.zip /opt/redhatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为目录所有者,提取压缩存档的内容。在以下示例中,用户
amq-broker使用unzip命令提取存档。su - amq-broker cd /opt/redhat unzip amq-broker-7.x.x-bin.zip
su - amq-broker cd /opt/redhat unzip amq-broker-7.x.x-bin.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果代理正在运行,请停止它。
<broker_instance_dir>/bin/artemis stop
<broker_instance_dir>/bin/artemis stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将代理实例复制到当前用户的主目录来备份代理目录。
cp -r <broker_instance_dir> ~/
cp -r <broker_instance_dir> ~/Copy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> /log/artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.18.0.redhat-00010 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.18.0.redhat-00010 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> /etc/artemis.profile配置文件。将
ARTEMIS_HOME属性设置为提取存档时创建的新目录。例如:ARTEMIS_HOME='/opt/redhat/amq-broker-7.x.x-bin'
ARTEMIS_HOME='/opt/redhat/amq-broker-7.x.x-bin'Copy to Clipboard Copied! Toggle word wrap Toggle overflow
编辑 &
lt;broker_instance_dir> /etc/bootstrap.xml配置文件。在
web元素中,更新 AMQ 管理控制台中 7.10.x 中 AMQ 管理控制台所需的.war文件的名称。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
broker xmlns元素中,将 schema 值从"http://activemq.org/schema"改为"http://activemq.apache.org/schema"。<broker xmlns="http://activemq.apache.org/schema">
<broker xmlns="http://activemq.apache.org/schema">Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> /etc/management.xml文件。在
management-context xmlns元素中,将 schema 值从"http://activemq.org/schema"改为"http://activemq.apache.org/schema"。<management-context xmlns="http://activemq.apache.org/schema">
<management-context xmlns="http://activemq.apache.org/schema">Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动升级的代理。
<broker_instance_dir>/bin/artemis run
<broker_instance_dir>/bin/artemis runCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>/log/artemis.log文件。找到类似以下示例的两行:请注意,当代理处于活动状态时,日志中会出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Mes INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... sage Broker version 2.21.0.redhat-00025 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Mes INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... sage Broker version 2.21.0.redhat-00025 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> /etc/artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例目录中的etc/和data/目录中。
2.9.2. 从 7.9.x 升级到 Windows 上的 7.10.x 复制链接链接已复制到粘贴板!
先决条件
- 至少 AMQ Broker 7.10.x 需要运行 Java 版本 11。确保每个 AMQ Broker 主机都在运行 Java 版本 11 或更高版本。有关支持的配置的更多信息,请参阅 Red Hat AMQ Broker 7 支持的配置。
-
如果 AMQ Broker 7.9 配置为保留数据库中的消息数据,则 HOLDER_EXPIRATION_TIME 列的数据类型是节点管理器数据库表中
的时间戳。在 AMQ Broker 7.10 中,列的数据类型更改为数字。在升级到 AMQ Broker 7.10.x 之前,您必须丢弃节点管理器表,即将其从数据库中删除。丢弃表后,重启代理时会使用新的 schema 重新创建。在共享存储高可用性(HA)配置中,节点管理器表在代理间共享。因此,您必须确保在丢弃表前停止共享表的所有代理。以下示例丢弃一个名为NODE_MANAGER_TABLE的节点管理器表:
DROP TABLE NODE_MANAGER_TABLE
DROP TABLE NODE_MANAGER_TABLE
流程
- 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档中 的说明进行操作。
- 使用文件管理器将存档移到您在 AMQ Broker 最后一次安装时创建的文件夹。
- 提取存档的内容。右键单击 .zip 文件并选择 Extract All。
如果代理正在运行,请停止它。
<broker_instance_dir>\bin\artemis-service.exe stop
<broker_instance_dir>\bin\artemis-service.exe stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用文件管理器备份代理。
-
右键单击 <
broker_instance_dir>文件夹,再选择 Copy。 - 右键单击同一窗口并选择" 粘贴 "。
-
右键单击 <
(可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> \log\artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.18.0.redhat-00010[4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.18.0.redhat-00010[4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd和<broker_instance_dir> \bin\artemis-service.xml配置文件。将ARTEMIS_HOME属性设置为提取存档时创建的新目录。ARTEMIS_HOME=<install_dir>
ARTEMIS_HOME=<install_dir>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd配置文件。确保JAVA_ARGS环境变量引用日志管理器和依赖文件的正确版本,如下所示。JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar
JAVA_ARGS=-Xbootclasspath/%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jarCopy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \bin\artemis-service.xml配置文件。确保 bootstrap 类路径 start 参数引用日志管理器和依赖文件的正确版本,如下所示。<startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar</startargument>
<startargument>-Xbootclasspath/a:%ARTEMIS_HOME%\lib\jboss-logmanager-2.1.10.Final-redhat-00001.jar;%ARTEMIS_HOME%\lib\wildfly-common-1.5.2.Final-redhat-00002.jar</startargument>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> \etc\bootstrap.xml配置文件。在
web元素中,更新 AMQ 管理控制台中 7.10.x 中 AMQ 管理控制台所需的.war文件的名称。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
broker xmlns元素中,将 schema 值从"http://activemq.org/schema"改为"http://activemq.apache.org/schema"。<broker xmlns="http://activemq.apache.org/schema">
<broker xmlns="http://activemq.apache.org/schema">Copy to Clipboard Copied! Toggle word wrap Toggle overflow 编辑 &
lt;broker_instance_dir> /etc/management.xml文件。在
management-context xmlns元素中,将 schema 值从"http://activemq.org/schema"改为"http://activemq.apache.org/schema"。<management-context xmlns="http://activemq.apache.org/schema">
<management-context xmlns="http://activemq.apache.org/schema">Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动升级的代理。
<broker_instance_dir>\bin\artemis-service.exe start
<broker_instance_dir>\bin\artemis-service.exe startCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>\log\artemis.log文件。找到类似以下示例的两行:请注意,当代理处于活动状态时,日志中会出现的新版本号。INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.21.0.redhat-00025 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221007: Server is now live ... INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.21.0.redhat-00025 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> \etc\artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例的目录中的\etc和\data目录中。
2.10. 将代理实例从 7.10.x 升级到 7.11.x 复制链接链接已复制到粘贴板!
以下小节介绍了如何为不同的操作系统将 7.10.x 代理实例升级到 7.11.x。
从 AMQ Broker 7.1.0 开始,默认情况下,您只能从本地主机访问 AMQ 管理控制台。要了解配置远程访问控制台的信息,请参阅配置本地和远程访问 AMQ 管理控制台。
2.10.1. 从 7.10.x 升级到 Linux 上的 7.11.x 复制链接链接已复制到粘贴板!
您下载的存档名称可能与以下示例中使用的不同。
先决条件
- 至少 AMQ Broker 7.11.x 需要运行 Java 版本 11。确保每个 AMQ Broker 主机都在运行 Java 版本 11 或更高版本。有关支持的配置的更多信息,请参阅 Red Hat AMQ Broker 7 支持的配置。
流程
- 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档中 的说明进行操作。
将您下载到拥有 AMQ Broker 安装的同一用户的存档所有者更改为要升级的 AMQ Broker 安装。以下示例显示了名为
amq-broker的用户。sudo chown amq-broker:amq-broker amq-broker-7.x.x-bin.zip
sudo chown amq-broker:amq-broker amq-broker-7.x.x-bin.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将存档移到 AMQ Broker 原始安装过程中创建的目录。以下示例使用
/opt/redhat。sudo mv amq-broker-7.x.x-bin.zip /opt/redhat
sudo mv amq-broker-7.x.x-bin.zip /opt/redhatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为目录所有者,提取压缩存档的内容。在以下示例中,用户
amq-broker使用unzip命令提取存档。su - amq-broker cd /opt/redhat unzip amq-broker-7.x.x-bin.zip
su - amq-broker cd /opt/redhat unzip amq-broker-7.x.x-bin.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意最新存档的内容提取到当前目录中名为
apache-artemis-2.28.0.redhat-00022的目录。如果代理正在运行,请停止它。
<broker_instance_dir>/bin/artemis stop
<broker_instance_dir>/bin/artemis stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> /log/artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.18.0.redhat-00010 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.18.0.redhat-00010 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将代理实例复制到当前用户的主目录来备份代理目录。
cp -r <broker_instance_dir> ~/
cp -r <broker_instance_dir> ~/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更改到您提取压缩存档内容的目录。
cd /opt/redhat/apache-artemis-2.28.0.redhat-00022/bin
cd /opt/redhat/apache-artemis-2.28.0.redhat-00022/binCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
artemis upgrade命令,以升级现有的代理。以下示例升级/var/opt/amq-broker/mybroker目录中的代理实例。./artemis upgrade /var/opt/amq-broker/mybroker
./artemis upgrade /var/opt/amq-broker/mybrokerCopy to Clipboard Copied! Toggle word wrap Toggle overflow artemis upgrade命令完成以下步骤来升级代理。-
在您要升级的代理目录的
old-config-bkp.<n> 子目录中修改每个文件的备份。 -
将 <
broker_instance_dir> /etc/artemis.profile文件中的ARTEMIS_HOME属性设置为提取存档时创建的新目录。 -
更新 &
lt;broker_instance_dir> bin/artemis脚本,以使用 Apache Log4j 2 日志记录工具,它与 AMQ Broker 7.11.x 捆绑,而不是之前版本中使用的 JBoss Logging 框架。 -
删除 JBoss 使用的现有
<broker_instance_dir> /etc/logging.properties文件,并为 Apache Log4j 2 logging 工具创建一个新的<broker_instance_dir> /etc/log4j2.properties文件。
-
在您要升级的代理目录的
如果在 7.10.x 中启用了 AMQ Broker 中包含的 Prometheus 指标插件,请将插件的类名称从
org.apache.activemq.artemis.core.server.metrics.plugins.ArtemisPrometheusMetricsPlugin改为com.redhat.amq.broker.core.server.metrics.plugins.ArtemisPrometheusMetricsPlugin,这是 AMQ Broker 7.11.x 中的插件的新类名称。-
打开 &
lt;broker_instance_dir> /etc/broker.xml配置文件。 在 &
lt;metrics> 元素的 <plugin> 子元素中,将插件类名称更新为com.redhat.amq.broker.core.server.metrics.plugins.ArtemisPrometheusMetricsPlugin。<metrics> <plugin class-name="com.redhat.amq.broker.core.server.metrics.plugins.ArtemisPrometheusMetricsPlugin"/> </metrics><metrics> <plugin class-name="com.redhat.amq.broker.core.server.metrics.plugins.ArtemisPrometheusMetricsPlugin"/> </metrics>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存
broker.xml配置文件。
-
打开 &
启动升级的代理。
<broker_instance_dir>/bin/artemis run
<broker_instance_dir>/bin/artemis runCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>/log/artemis.log文件。查找类似以下的行。请注意,代理启动后日志中出现的新版本号。2023-02-08 20:53:50,128 INFO [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server version 2.28.0.redhat-00022 2023-02-08 20:53:51,077 INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.28.0.redhat-00022 [0.0.0.0, nodeID=be02a2b2-3e42-11ec-9b8a-4c796e887ecb]
2023-02-08 20:53:50,128 INFO [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server version 2.28.0.redhat-00022 2023-02-08 20:53:51,077 INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.28.0.redhat-00022 [0.0.0.0, nodeID=be02a2b2-3e42-11ec-9b8a-4c796e887ecb]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> /etc/artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例目录中的etc/和data/目录中。
2.10.2. 从 7.10.x 升级到 Windows 上的 7.11.x 复制链接链接已复制到粘贴板!
先决条件
- 至少 AMQ Broker 7.11.x 需要运行 Java 版本 11。确保每个 AMQ Broker 主机都在运行 Java 版本 11 或更高版本。有关支持的配置的更多信息,请参阅 Red Hat AMQ Broker 7 支持的配置。
流程
- 按照 下载 AMQ Broker 归档中的步骤 下载 AMQ Broker 归档。
- 使用文件管理器将存档移到您在 AMQ Broker 最后一次安装时创建的文件夹。
提取存档的内容。右键单击 .zip 文件并选择 Extract All。
注意最新存档的内容提取到当前目录中名为
apache-artemis-2.28.0.redhat-00022的文件夹。如果代理正在运行,请停止它。
<broker_instance_dir>\bin\artemis-service.exe stop
<broker_instance_dir>\bin\artemis-service.exe stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> \log\artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.18.0.redhat-00010[4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.18.0.redhat-00010[4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用文件管理器备份代理。
-
右键单击 <
broker_instance_dir>文件夹,再选择 Copy。 - 右键单击同一窗口并选择" 粘贴 "。
-
右键单击 <
更改到您提取压缩存档内容的目录。例如:
cd \redhat\amq-broker\apache-artemis-2.28.0.redhat-00022\bin
cd \redhat\amq-broker\apache-artemis-2.28.0.redhat-00022\binCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
artemis upgrade命令,以升级现有的代理。以下示例升级C:\redhat\amq-broker\mybroker目录中的代理实例。artemis upgrade C:\redhat\amq-broker\mybroker
artemis upgrade C:\redhat\amq-broker\mybrokerCopy to Clipboard Copied! Toggle word wrap Toggle overflow artemis upgrade命令完成以下步骤来升级代理。-
在您要升级的代理目录的
old-config-bkp.<n> 子目录中修改每个文件的备份。 -
将 <
broker_instance_dir> \etc\artemis.cmd.profile文件中的ARTEMIS_HOME属性设置为提取存档时创建的新目录。 -
更新 &
lt;broker_instance_dir> \bin\artemis.cmd脚本以使用 Apache Log4j 2 logging 工具,该工具与 AMQ Broker 7.11.x 捆绑,而不是之前版本中使用的 JBoss Logging 框架。 -
删除 JBoss 使用的现有
<broker_instance_dir> \etc\logging.properties文件,并为 Apache Log4j 2 logging 程序创建一个新的<broker_instance_dir> \etc\log4j2.properties文件。
-
在您要升级的代理目录的
如果 AMQ Broker 附带的 Prometheus metrics 插件在 7.10.x 中被启用,请将来自
org.apache.activemq.artemis.core.server.metrics.plugins.ArtemisPrometheusMetricsPlugin的类名称改为com.redhat.amq.broker.core.server.metrics.plugins.ArtemisPrometheusMetricsPlugin,这是 7.11.x 中的插件的新类名称。-
打开 &
lt;broker_instance_dir> \etc\broker.xml配置文件。 在 &
lt;metrics> 元素的 <plugin> 子元素中,将插件类名称更新为com.redhat.amq.broker.core.server.metrics.plugins.ArtemisPrometheusMetricsPlugin。<metrics> <plugin class-name="com.redhat.amq.broker.core.server.metrics.plugins.ArtemisPrometheusMetricsPlugin"/> </metrics><metrics> <plugin class-name="com.redhat.amq.broker.core.server.metrics.plugins.ArtemisPrometheusMetricsPlugin"/> </metrics>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存
broker.xml配置文件。
-
打开 &
启动升级的代理。
<broker_instance_dir>\bin\artemis-service.exe start
<broker_instance_dir>\bin\artemis-service.exe startCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>\log\artemis.log文件。找到类似以下示例的两行:请注意,当代理处于活动状态时,日志中会出现的新版本号。2023-02-08 20:53:50,128 INFO [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server version 2.28.0.redhat-00022 2023-02-08 20:53:51,077 INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.28.0.redhat-00022 [0.0.0.0, nodeID=be02a2b2-3e42-11ec-9b8a-4c796e887ecb]
2023-02-08 20:53:50,128 INFO [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server version 2.28.0.redhat-00022 2023-02-08 20:53:51,077 INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.28.0.redhat-00022 [0.0.0.0, nodeID=be02a2b2-3e42-11ec-9b8a-4c796e887ecb]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> \etc\artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例的目录中的\etc和\data目录中。
2.11. 将代理实例从 7.11.x 升级到 7.12.x 复制链接链接已复制到粘贴板!
以下小节介绍了如何为不同的操作系统将 7.11.x 代理实例升级到 7.12.x。
从 AMQ Broker 7.1.0 开始,默认情况下,您只能从本地主机访问 AMQ 管理控制台。要了解配置远程访问控制台的信息,请参阅配置本地和远程访问 AMQ 管理控制台。
2.11.1. 从 7.11.x 升级到 Linux 上的 7.12.x 复制链接链接已复制到粘贴板!
先决条件
- 至少 AMQ Broker 7.12.x 需要运行 Java 版本 11。确保每个 AMQ Broker 主机都在运行 Java 版本 11 或更高版本。有关支持的配置的更多信息,请参阅 Red Hat AMQ 7 支持的配置。
流程
- 从红帽客户门户下载存档。按照 下载 AMQ Broker 归档中 的说明进行操作。
将您下载到拥有 AMQ Broker 安装的同一用户的存档所有者更改为要升级的 AMQ Broker 安装。以下示例显示了名为
amq-broker的用户。sudo chown amq-broker:amq-broker amq-broker-7.x.x-bin.zip
sudo chown amq-broker:amq-broker amq-broker-7.x.x-bin.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将 AMQ Broker 归档移到 AMQ Broker 原始安装过程中创建的目录。以下示例使用
/opt/redhat。sudo mv amq-broker-7.x.x-bin.zip /opt/redhat
sudo mv amq-broker-7.x.x-bin.zip /opt/redhatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为目录所有者,提取压缩存档的内容。在以下示例中,用户
amq-broker使用unzip命令提取存档。su - amq-broker cd /opt/redhat unzip amq-broker-7.x.x-bin.zip
su - amq-broker cd /opt/redhat unzip amq-broker-7.x.x-bin.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意最新存档的内容提取到当前目录中名为
apache-artemis-2.33.0.redhat-00013的目录。如果代理正在运行,请停止它。
<broker_instance_dir>/bin/artemis stop
<broker_instance_dir>/bin/artemis stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> /log/artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.28.0.redhat-00019 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.28.0.redhat-00019 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将代理实例复制到当前用户的主目录来备份代理目录。
cp -r <broker_instance_dir> ~/
cp -r <broker_instance_dir> ~/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更改到您提取压缩存档内容的目录。
cd /opt/redhat/apache-artemis-2.33.0.redhat-00013/bin
cd /opt/redhat/apache-artemis-2.33.0.redhat-00013/binCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
artemis upgrade命令,以升级现有的代理。以下示例升级/var/opt/amq-broker/mybroker目录中的代理实例。./artemis upgrade /var/opt/amq-broker/mybroker
./artemis upgrade /var/opt/amq-broker/mybrokerCopy to Clipboard Copied! Toggle word wrap Toggle overflow artemis upgrade命令完成以下步骤来升级代理。-
在您要升级的代理目录的
old-config-bkp.<n> 子目录中修改每个文件的备份。 -
将 <
broker_instance_dir> /etc/artemis.profile文件中的ARTEMIS_HOME属性设置为提取存档时创建的新目录。
-
在您要升级的代理目录的
启动升级的代理。
<broker_instance_dir>/bin/artemis run
<broker_instance_dir>/bin/artemis runCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>/log/artemis.log文件。查找类似以下的行。请注意,代理启动后日志中出现的新版本号。2023-02-08 20:53:50,128 INFO [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server version 2.33.0.redhat-00013 2023-02-08 20:53:51,077 INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.33.0.redhat-00013 [0.0.0.0, nodeID=be02a2b2-3e42-11ec-9b8a-4c796e887ecb]
2023-02-08 20:53:50,128 INFO [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server version 2.33.0.redhat-00013 2023-02-08 20:53:51,077 INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.33.0.redhat-00013 [0.0.0.0, nodeID=be02a2b2-3e42-11ec-9b8a-4c796e887ecb]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> /etc/artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在之前的 AMQ Broker 版本中,这些配置文件和数据只能存储在代理实例目录中的etc/和data/目录中。
2.11.2. 从 7.11.x 升级到 Windows 上的 7.12.x 复制链接链接已复制到粘贴板!
先决条件
- 至少 AMQ Broker 7.12.x 需要运行 Java 版本 11。确保每个 AMQ Broker 主机都在运行 Java 版本 11 或更高版本。有关支持的配置的更多信息,请参阅 Red Hat AMQ 7 支持的配置。
流程
- 按照 下载 AMQ Broker 归档中的步骤 下载 AMQ Broker 归档。
- 使用文件管理器将存档移到您在 AMQ Broker 最后一次安装时创建的文件夹。
提取存档的内容。右键单击 .zip 文件并选择 Extract All。
注意最新存档的内容提取到当前目录中名为
apache-artemis-2.33.0.redhat-00013的文件夹。如果代理正在运行,请停止它。
<broker_instance_dir>\bin\artemis-service.exe stop
<broker_instance_dir>\bin\artemis-service.exe stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> \log\artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.28.0.redhat-00019[4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.28.0.redhat-00019[4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用文件管理器备份代理。
-
右键单击 <
broker_instance_dir>文件夹,再选择 Copy。 - 右键单击同一窗口并选择" 粘贴 "。
-
右键单击 <
更改到您提取压缩存档内容的目录。例如:
cd \redhat\amq-broker\apache-artemis-2.33.0.redhat-00013\bin
cd \redhat\amq-broker\apache-artemis-2.33.0.redhat-00013\binCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
artemis upgrade命令,以升级现有的代理。以下示例升级C:\redhat\amq-broker\mybroker目录中的代理实例。artemis upgrade C:\redhat\amq-broker\mybroker
artemis upgrade C:\redhat\amq-broker\mybrokerCopy to Clipboard Copied! Toggle word wrap Toggle overflow artemis upgrade命令完成以下步骤来升级代理。-
在您要升级的代理目录的
old-config-bkp.<n> 子目录中修改每个文件的备份。 -
将 <
broker_instance_dir> \etc\artemis.cmd.profile文件中的ARTEMIS_HOME属性设置为提取存档时创建的新目录。
-
在您要升级的代理目录的
启动升级的代理。
<broker_instance_dir>\bin\artemis-service.exe start
<broker_instance_dir>\bin\artemis-service.exe startCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>\log\artemis.log文件。找到类似以下示例的两行:请注意,当代理处于活动状态时,日志中会出现的新版本号。2023-02-08 20:53:50,128 INFO [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server version 2.33.0.redhat-00013 2023-02-08 20:53:51,077 INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.33.0.redhat-00013 [0.0.0.0, nodeID=be02a2b2-3e42-11ec-9b8a-4c796e887ecb]
2023-02-08 20:53:50,128 INFO [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server version 2.33.0.redhat-00013 2023-02-08 20:53:51,077 INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.33.0.redhat-00013 [0.0.0.0, nodeID=be02a2b2-3e42-11ec-9b8a-4c796e887ecb]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> \etc\artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例的目录中的\etc和\data目录中。
2.12. 将代理实例从 7.12.x 升级到 7.13.x 复制链接链接已复制到粘贴板!
以下小节介绍了如何为不同的操作系统将 7.12.x 代理实例升级到 7.13.x。
从 AMQ Broker 7.1.0 开始,默认情况下,您只能从本地主机访问 AMQ 管理控制台。要了解配置远程访问控制台的信息,请参阅配置本地和远程访问 AMQ 管理控制台。
2.12.1. 从 7.12.x 升级到 Linux 上的 7.13.x 复制链接链接已复制到粘贴板!
先决条件
- 至少 AMQ Broker 7.13.x 需要 Java 版本 17 才能运行。确保每个 AMQ Broker 主机正在运行 Java 版本 17 或更高版本。有关支持的配置的更多信息,请参阅 Red Hat AMQ 7 支持的配置。
流程
- 从红帽客户门户网站下载 AMQ Broker 归档。按照 下载 AMQ Broker 归档中 的说明进行操作。
将您下载到拥有 AMQ Broker 安装的同一用户的存档所有者更改为要升级的 AMQ Broker 安装。以下示例显示了名为
amq-broker的用户。sudo chown amq-broker:amq-broker amq-broker-7.x.x-bin.zip
sudo chown amq-broker:amq-broker amq-broker-7.x.x-bin.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将存档移到 AMQ Broker 原始安装过程中创建的目录。以下示例使用
/opt/redhat。sudo mv amq-broker-7.x.x-bin.zip /opt/redhat
sudo mv amq-broker-7.x.x-bin.zip /opt/redhatCopy to Clipboard Copied! Toggle word wrap Toggle overflow 作为目录所有者,提取压缩存档的内容。在以下示例中,用户
amq-broker使用unzip命令提取存档。su - amq-broker cd /opt/redhat unzip amq-broker-7.x.x-bin.zip
su - amq-broker cd /opt/redhat unzip amq-broker-7.x.x-bin.zipCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意最新存档的内容提取到当前目录中名为
apache-artemis-2.40.0.redhat-00003的目录。如果代理正在运行,请停止它。
<broker_instance_dir>/bin/artemis stop
<broker_instance_dir>/bin/artemis stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> /log/artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.40.0.redhat-00003 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]
INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.40.0.redhat-00003 [0.0.0.0, nodeID=554cce00-63d9-11e8-9808-54ee759954c4]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过将代理实例复制到当前用户的主目录来备份代理目录。
cp -r <broker_instance_dir> ~/
cp -r <broker_instance_dir> ~/Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更改到您提取压缩存档内容的目录。
cd /opt/redhat/apache-artemis-2.40.0.redhat-00003/bin
cd /opt/redhat/apache-artemis-2.40.0.redhat-00003/binCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
artemis upgrade命令,以升级现有的代理。以下示例升级/var/opt/amq-broker/mybroker目录中的代理实例。./artemis upgrade /var/opt/amq-broker/mybroker
./artemis upgrade /var/opt/amq-broker/mybrokerCopy to Clipboard Copied! Toggle word wrap Toggle overflow artemis upgrade命令完成以下步骤来升级代理。-
在您要升级的代理目录的
old-config-bkp.<n> 子目录中修改每个文件的备份。 -
将 <
broker_instance_dir> /etc/artemis.profile文件中的ARTEMIS_HOME属性设置为提取存档时创建的新目录。
-
在您要升级的代理目录的
启动升级的代理。
<broker_instance_dir>/bin/artemis run
<broker_instance_dir>/bin/artemis runCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>/log/artemis.log文件。查找类似以下的行。请注意,代理启动后日志中显示的新版本号。2023-02-08 20:53:50,128 INFO [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server version 2.40.0.redhat-00003 2023-02-08 20:53:51,077 INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.40.0.redhat-00003 [0.0.0.0, nodeID=be02a2b2-3e42-11ec-9b8a-4c796e887ecb]
2023-02-08 20:53:50,128 INFO [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server version 2.40.0.redhat-00003 2023-02-08 20:53:51,077 INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.40.0.redhat-00003 [0.0.0.0, nodeID=be02a2b2-3e42-11ec-9b8a-4c796e887ecb]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> /etc/artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在之前的 AMQ Broker 版本中,这些配置文件和数据只能存储在代理实例目录中的etc/和data/目录中。
2.12.2. 从 7.12.x 升级到 Windows 上的 7.13.x 复制链接链接已复制到粘贴板!
先决条件
- 至少 AMQ Broker 7.13.x 需要 Java 版本 17 才能运行。确保每个 AMQ Broker 主机正在运行 Java 版本 17 或更高版本。有关支持的配置的更多信息,请参阅 Red Hat AMQ Broker 7 支持的配置。
流程
- 按照 下载 AMQ Broker 归档中的步骤 下载 AMQ Broker 归档。
- 使用文件管理器将存档移到您在 AMQ Broker 最后一次安装时创建的文件夹。
提取存档的内容。右键单击 .zip 文件并选择 Extract All。
注意最新存档的内容提取到当前目录中名为
apache-artemis-2.40.0.redhat-00003的文件夹。如果代理正在运行,请停止它。
<broker_instance_dir>\bin\artemis-service.exe stop
<broker_instance_dir>\bin\artemis-service.exe stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)请注意代理的当前版本。代理停止后,您会看到类似 <
broker_instance_dir> \log\artemis.log文件末尾的一行。INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.40.0.redhat-00003[4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutes
INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.40.0.redhat-00003[4782d50d-47a2-11e7-a160-9801a793ea45] stopped, uptime 28 minutesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用文件管理器备份代理。
-
右键单击 <
broker_instance_dir>文件夹,再选择 Copy。 - 右键单击同一窗口并选择" 粘贴 "。
-
右键单击 <
更改到您提取压缩存档内容的目录。例如:
cd \redhat\amq-broker\apache-artemis-2.40.0.redhat-00003\bin
cd \redhat\amq-broker\apache-artemis-2.40.0.redhat-00003\binCopy to Clipboard Copied! Toggle word wrap Toggle overflow 运行
artemis upgrade命令,以升级现有的代理。以下示例升级C:\redhat\amq-broker\mybroker目录中的代理实例。artemis upgrade C:\redhat\amq-broker\mybroker
artemis upgrade C:\redhat\amq-broker\mybrokerCopy to Clipboard Copied! Toggle word wrap Toggle overflow artemis upgrade命令完成以下步骤来升级代理。-
在您要升级的代理目录的
old-config-bkp.<n> 子目录中修改每个文件的备份。 -
将 <
broker_instance_dir> \etc\artemis.cmd.profile文件中的ARTEMIS_HOME属性设置为提取存档时创建的新目录。
-
在您要升级的代理目录的
启动升级的代理。
<broker_instance_dir>\bin\artemis-service.exe start
<broker_instance_dir>\bin\artemis-service.exe startCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)确认代理正在运行并且版本已更改。启动代理后,打开 <
broker_instance_dir>\log\artemis.log文件。找到类似以下示例的两行:请注意,当代理上线时,日志中显示的新版本号。2023-02-08 20:53:50,128 INFO [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server version 2.40.0.redhat-00003 2023-02-08 20:53:51,077 INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.40.0.redhat-00003 [0.0.0.0, nodeID=be02a2b2-3e42-11ec-9b8a-4c796e887ecb]
2023-02-08 20:53:50,128 INFO [org.apache.activemq.artemis.integration.bootstrap] AMQ101000: Starting ActiveMQ Artemis Server version 2.40.0.redhat-00003 2023-02-08 20:53:51,077 INFO [org.apache.activemq.artemis.core.server] AMQ221001: Apache ActiveMQ Artemis Message Broker version 2.40.0.redhat-00003 [0.0.0.0, nodeID=be02a2b2-3e42-11ec-9b8a-4c796e887ecb]Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录之外的位置。在 &
lt;broker_instance_dir> \etc\artemis.profile文件中,在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI属性。在以前的版本中,这些配置文件和数据只能存储在代理实例的目录中的\etc和\data目录中。
第 3 章 使用命令行界面 复制链接链接已复制到粘贴板!
命令行界面(CLI)允许使用交互式 shell 与消息代理交互。您可以使用 CLI 管理代理操作、配置消息、添加用户和角色到文件,并输入其他有用的命令。
您可以使用 CLI 与 Bash 或 Zsh shell 中的代理交互,或自定义 artemis shell。每个 shell 中都提供了相同的命令。默认情况下,artemis shell 内置了命令和命令参数的自动完成功能。您还可以在 Bash 或 Zsh shell 中添加 CLI 命令和命令参数的自动完成。
3.1. 在 artemis shell 中使用 CLI 复制链接链接已复制到粘贴板!
artemis shell 接口提供命令和参数的自动完成,它们可用于 artemis 命令。对于您在同一 shell 会话中运行的后续命令,shell 还重复使用提供的连接信息,如代理 URI 和登录凭证。
流程
切换到安装期间创建的用户帐户,例如:
su - amq-broker
$ su - amq-brokerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
artemis命令启动 shell,例如:/var/opt/amq-broker/mybroker/bin/artemis
$ /var/opt/amq-broker/mybroker/bin/artemisCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要在启动
artemisshell 时提供代理连接详情,请使用artemis shell命令。例如:/var/opt/amq-broker/mybroker/bin/artemis shell --user myuser --password mypassword --url tcp://localhost:61616
$ /var/opt/amq-broker/mybroker/bin/artemis shell --user myuser --password mypassword --url tcp://localhost:61616Copy to Clipboard Copied! Toggle word wrap Toggle overflow 提供的凭证和 URI 可为需要在 shell 中运行的任何后续命令重复使用,该命令需要使用代理进行身份验证。
按 Tab 键显示 shell 中任何位置的自动完成信息。例如:
-
要显示
artemisshell 中可用的命令列表,请在 shell 提示符下按 Tab。 -
要显示命令的子命令,请在命令后按 Tab 键。例如,键入
check并按 Tab 以显示check命令的子命令。auto-completion 信息显示check命令支持三个子命令:集群、节点和队列。 -
要显示子命令的自动完成信息,请在子命令后按 Tab 键。例如,键入
check node并按 Tab。如果没有进一步自动完成信息,请键入---,例如检查 node,然后按 Tab 键显示可用于该命令的参数。--
-
要显示
3.2. 在 Bash 或 Zsh shell 中配置自动完成 复制链接链接已复制到粘贴板!
您可以在 Bash 或 Zsh shell 中配置 CLI 命令和命令参数的自动完成。
流程
切换到安装期间创建的用户帐户,例如:
su - amq-broker
$ su - amq-brokerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令,创建一个名为
auto-complete-artemis.sh的命令自动完成脚本。/var/opt/amq-broker/mybroker/bin/artemis auto-complete
$ /var/opt/amq-broker/mybroker/bin/artemis auto-completeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 要运行
auto-complete-artemis.sh,请使用以下命令:source /var/opt/amq-broker/mybroker/bin/artemis/auto-complete-artemis.sh
$ source /var/opt/amq-broker/mybroker/bin/artemis/auto-complete-artemis.shCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
要查看
artemis命令的自动完成信息,请输入/var/opt/amq-broker/mybroker/mybroker/artemis并按 Tab。此时会显示可用于artemis命令的命令列表。 -
要查看可用命令的自动完成信息,请在命令后按 Tab 键。例如,键入
/var/opt/amq-broker/mybroker/artemis check node并按 Tab。如果没有进一步自动完成信息,请键入---,例如检查 node,然后按 Tab 键显示可用于该命令的参数。--
3.3. 启动代理实例 复制链接链接已复制到粘贴板!
代理实例是一个包含所有配置和运行时数据的目录,如日志和数据文件。运行时数据与唯一代理进程关联。
您可以使用 artemis 脚本、Linux 服务或 Windows 服务在前台启动代理。
3.3.1. 启动代理实例 复制链接链接已复制到粘贴板!
创建代理实例后,您将使用 artemis run 命令启动它。
流程
切换到安装期间创建的用户帐户。
su - amq-broker
$ su - amq-brokerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
artemis run命令启动代理实例。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 代理使用以下信息启动并显示日志输出:
- 事务日志和集群配置的位置。
- 用于消息持久性的日志类型(本例中为 AIO)。
可接受客户端连接的 URI。
默认情况下,端口 61616 可以接受来自任何支持的协议(CORE、MQTT、AMQP、STOMP、HORNETQ 和 OPENWIRE)的连接。每个协议也都有单独的端口。
- Web 控制台位于 http://localhost:8161。
- Jolokia 服务(JMX over REST)位于 http://localhost:8161/jolokia。
3.3.2. 将代理作为 Linux 服务启动 复制链接链接已复制到粘贴板!
如果在 Linux 上安装代理,您可以将其作为服务运行。
流程
-
在
/etc/systemd/system/目录中创建一个新的amq-broker.service文件。 将以下文本复制到 文件中。
根据代理实例创建过程中提供的信息,修改路径和用户字段。在以下示例中,用户
amq-broker启动在/var/opt/amq-broker/mybroker/目录下安装的代理服务。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 打开终端。
使用以下命令启用代理服务:
sudo systemctl enable amq-broker
sudo systemctl enable amq-brokerCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令运行代理服务:
sudo systemctl start amq-broker
sudo systemctl start amq-brokerCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.3.3. 将代理作为 Windows 服务启动 复制链接链接已复制到粘贴板!
如果在 Windows 上安装代理,您可以将其作为服务运行。
流程
- 打开命令提示符以输入命令
使用以下命令将代理安装为服务:
<broker_instance_dir>\bin\artemis-service.exe install
<broker_instance_dir>\bin\artemis-service.exe installCopy to Clipboard Copied! Toggle word wrap Toggle overflow 使用以下命令启动服务:
<broker_instance_dir>\bin\artemis-service.exe start
<broker_instance_dir>\bin\artemis-service.exe startCopy to Clipboard Copied! Toggle word wrap Toggle overflow (可选)卸载该服务:
<broker_instance_dir>\bin\artemis-service.exe uninstall
<broker_instance_dir>\bin\artemis-service.exe uninstallCopy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4. 停止代理实例 复制链接链接已复制到粘贴板!
手动停止代理实例,或者将代理配置为安全关闭。
3.4.1. 停止 broker 实例 复制链接链接已复制到粘贴板!
创建独立代理并生成和使用测试消息后,您可以停止代理实例。
此流程手动停止代理,代理强制关闭所有客户端连接。在生产环境中,您应该将代理配置为正常停止,以便正确关闭客户端连接。
流程
使用
artemis stop命令停止代理实例:/var/opt/amq-broker/mybroker/bin/artemis stop 2018-12-03 14:37:30,630 INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.6.1.amq-720004-redhat-1 [b6c244ef-f1cb-11e8-a2d7-0800271b03bd] stopped, uptime 35 minutes Server stopped!
$ /var/opt/amq-broker/mybroker/bin/artemis stop 2018-12-03 14:37:30,630 INFO [org.apache.activemq.artemis.core.server] AMQ221002: Apache ActiveMQ Artemis Message Broker version 2.6.1.amq-720004-redhat-1 [b6c244ef-f1cb-11e8-a2d7-0800271b03bd] stopped, uptime 35 minutes Server stopped!Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.4.2. 正常停止代理实例 复制链接链接已复制到粘贴板!
在输入 stop 命令后,手动关闭强制断开所有客户端。作为替代方案,将代理配置为使用 secureful -shutdown-enabled 配置元素来安全地关闭。
当将 graceful-shutdown-enabled 设为 true 时,在输入 stop 命令后不允许使用新的客户端连接。但是,在关闭过程启动前,允许现有连接在客户端上关闭。graceful-shutdown-enabled 的默认值为 false。
使用 graceful-shutdown-timeout 配置元素设置一个长度(以毫秒为单位),以便客户端在从代理端强制关闭连接前断开连接。关闭所有连接后,关闭过程将启动。使用 graceful-shutdown-timeout 的一个优点是它可防止客户端连接延迟关闭。graceful-shutdown-timeout 的默认值为 -1,这意味着代理会无限期等待客户端断开连接。
以下流程演示了如何配置使用超时的安全关闭。
流程
-
打开配置文件 <
broker_instance_dir> \etc\broker.xml。 添加
graceful-shutdown-enabled配置元素,并将值设为true。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加
graceful-shutdown-timeout配置元素,并以毫秒为单位为 timeout 设置值。在以下示例中,在发出stop命令后,客户端连接将强制关闭 30 秒(30000毫秒)。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5. 通过截获数据包来审核消息 复制链接链接已复制到粘贴板!
截获进入或退出代理的数据包,以审核数据包或过滤消息。拦截器会更改它们拦截器的数据包。这使得拦截器功能强大,但也可能有危险。
开发满足您业务需求的拦截器。拦截器是特定于协议的,必须实现适当的接口。
拦截器必须实施 intercept () 方法,该方法返回布尔值。如果值为 true,则消息数据包将继续。如果为 false,则进程将中止,则不会调用其他拦截器,且不会进一步处理消息数据包。
3.5.1. 创建拦截器 复制链接链接已复制到粘贴板!
拦截器可能会更改它们拦截器的数据包。您可以创建自己的传入和传出的拦截器。所有拦截器都特定于协议,并为进入或分别退出服务器的任何数据包调用。这可让您创建拦截器来满足审计数据包等业务要求。
拦截器及其依赖项必须放在代理的 Java 类路径中。您可以使用 < ;broker_instance_dir> /lib 目录,因为它是 classpath 的一部分。
以下示例演示了如何创建一个拦截器来检查传递给它的每个数据包的大小。
这个示例为每个协议实施一个特定的接口。
流程
实施适当的接口并覆盖其
intercept ()方法。如果您使用 AMQP 协议,请实施
org.apache.activemq.artemis.protocol.amqp.broker.AmqpInterceptor接口。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果使用核心协议,您的拦截器必须实现
org.apache.artemis.activemq.api.core.Interceptor接口。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您使用 MQTT 协议,请实施
org.apache.activemq.artemis.core.protocol.mqtt.MQTTInterceptor接口。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您使用 STOMP 协议,请实施
org.apache.activemq.artemis.core.protocol.stomp.StompFrameInterceptor接口。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5.2. 将代理配置为使用拦截器 复制链接链接已复制到粘贴板!
先决条件
-
创建拦截器类,并将其添加到代理的 Java 类路径中。您可以使用 <
;broker_instance_dir> /lib目录,因为它是 classpath 的一部分。
流程
-
Open
<broker_instance_dir>/etc/broker.xml 通过将配置添加到 <broker
_instance_dir> /etc/broker.xml,将代理配置为使用拦截器如果拦截器用于传入的信息,请将其
class-name添加到remoting-incoming-interceptors列表中。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果拦截器用于传出消息,请将其
class-name添加到remoting-outgoing-interceptors列表中。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.5.3. 客户端上的拦截器 复制链接链接已复制到粘贴板!
客户端可以使用拦截器来截获客户端向服务器发送或服务器发送到客户端的数据包。如果代理侧拦截器返回 false 值,则不会调用其他拦截器,客户端不会进一步处理数据包。这个过程透明,除非以 阻塞 的方式发送传出数据包。在本例中,ActiveMQException 会抛出给调用者。ActiveMQException thrown 包含返回 false 值的拦截器的名称。
在服务器上,客户端拦截器类及其依赖项必须添加到客户端的 Java 类路径中,才能正确实例化和调用。
3.6. 检查代理、队列和集群的健康状况 复制链接链接已复制到粘贴板!
AMQ Broker 包含一个命令行工具,可让您在代理拓扑中的代理和队列上执行各种健康检查。如果您的集群有代理,也可以使用 实用程序检查集群拓扑的健康状况。
流程
查看您可以在代理拓扑中为特定代理(即 节点)运行的检查列表。
<broker_instance_dir>/bin/artemis help check node
$ <broker_instance_dir>/bin/artemis help check nodeCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您会看到描述可与
artemis check node命令一起使用的一组选项的输出。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 例如,检查本地代理的磁盘用量低于为代理配置的最大磁盘用量。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在上例中,为-
diskUsage选项指定-1值意味着,工具会根据为代理配置 的最大 磁盘用量检查磁盘用量。代理的最大磁盘用量是使用broker.xml配置文件中的max-disk-usage参数进行配置。为max-disk-usage指定的值代表代理可以使用的可用物理磁盘空间百分比。查看您可以在代理拓扑中为特定队列运行的检查列表。
<broker_instance_dir>/bin/artemis help check queue
$ <broker_instance_dir>/bin/artemis help check queueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您会看到描述可与
artemis check queue命令一起使用的一组选项的输出。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 实用程序可以使用单个命令执行多个选项。例如,要检查本地代理上默认
helloworld队列中 1000 消息的生产环境、浏览和使用,请使用以下命令:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在前面的示例中,观察您在运行队列检查时没有指定代理 URL。如果您没有显式指定 URL,工具将使用默认值
tcp://localhost:61616。如果您的集群了代理,请查看您可以为集群拓扑运行的检查列表。
<broker_instance_dir>/bin/artemis help check cluster
$ <broker_instance_dir>/bin/artemis help check clusterCopy to Clipboard Copied! Toggle word wrap Toggle overflow 您会看到描述可用于
artemis check cluster命令的一组选项的输出。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
3.7. 命令行工具 复制链接链接已复制到粘贴板!
AMQ Broker 包括一组命令行界面(CLI)工具,以便您可以管理消息传递日志。下表列出了每个工具的名称及其相应的描述。
| 工具 | 描述 |
|---|---|
| address |
地址工具组(create/delete/update/show) (示例 |
| 浏览器 | 浏览实例上的消息。 |
| 消费者 | 使用实例上的消息。 |
| data | 输出有关日志记录的报告并压缩数据。 |
| 解码 | 从编码导入内部日志格式。 |
| 编码 | 显示编码为 String 的日志的内部格式。 |
| exp | 使用特殊的独立 XML 格式导出消息数据。 |
| 帮助 | 显示帮助信息。 |
| imp |
使用 |
| kill | 终止通过 --allow-kill 启动的代理实例。 |
| mask | 屏蔽密码并将其打印出。 |
| perf-journal | 计算您应该用于当前数据文件夹的 journal-buffer 超时。 |
| queue |
队列工具组(create/delete/update/stat) (示例 |
| run | 运行代理实例。 |
| stop | 停止代理实例。 |
| user |
基于文件的默认用户 managament (add/rm/list/reset) (example |
要获得每个工具可用的命令列表,请使用 help 参数,后跟工具的名称。例如,在以下示例中,CLI 输出列出了用户在输入命令 ./artemis help 后提供给数据工具的所有命令。
data
您可以使用 help 参数来了解更多有关如何执行每个命令的信息。例如,CLI 在用户输入 ./artemis help data print 后列出了 data print 命令的更多信息。
第 4 章 使用 AMQ 管理控制台 复制链接链接已复制到粘贴板!
AMQ 管理控制台是 AMQ Broker 安装中包含的 Web 控制台,可让您使用 Web 浏览器管理 AMQ Broker。
AMQ 管理控制台基于 hawtio。
4.1. 概述 复制链接链接已复制到粘贴板!
AMQ Broker 是一个功能齐全的、面向消息的中间件代理。它提供特殊的队列行为、消息持久性和易管理性。它支持多种协议和客户端语言,让您自由使用许多应用程序资产。
AMQ Broker 的主要功能允许您:
监控 AMQ 代理和客户端
- 查看拓扑
- 查看网络健康状况概览
使用以下方法管理 AMQ 代理:
- AMQ 管理控制台
- 命令行界面(CLI)
- 管理 API
AMQ 管理控制台支持的 Web 浏览器是 Firefox 和 Chrome。有关支持的浏览器版本的更多信息,请参阅 AMQ 7 支持的配置。
4.2. 配置对 AMQ 管理控制台的本地和远程访问 复制链接链接已复制到粘贴板!
本节中的步骤演示了如何配置对 AMQ 管理控制台的本地和远程访问权限。
远程访问控制台可以采用两种形式之一:
- 在本地代理上的控制台会话中,您可以使用 Connect 选项卡连接到另一个远程代理
- 在远程主机中,您可以使用本地代理的外部 IP 地址连接到本地代理的控制台
先决条件
-
您必须至少升级到 AMQ Broker 7.1.0。作为此升级的一部分,将名为
jolokia-access.xml的 access-management 配置文件添加到代理实例中。有关升级的更多信息,请参阅将 代理实例从 7.0.x 升级到 7.1.0。
流程
-
打开 &
lt;broker_instance_dir> /etc/bootstrap.xml文件。 在
web元素中,观察 Web 端口默认仅绑定到localhost。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 要从远程主机为本地代理启用到控制台的连接,请将 Web 端口绑定到网络可访问的接口。例如:
<web path="web"> <binding uri="http://0.0.0.0:8161">
<web path="web"> <binding uri="http://0.0.0.0:8161">Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在前面的示例中,通过指定
0.0.0.0,您可以将 Web 端口绑定到本地代理 上的所有 接口。-
保存
bootstrap.xml文件。 -
打开 &
lt;broker_instance_dir> /etc/jolokia-access.xml文件。 在 &
lt;cors> (即 Cross-Origin Resource Sharing)元素中,为您要允许访问控制台的每个 HTTP 原始请求标头添加一个allow-origin条目。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在前面的配置中,您可以指定允许以下连接:
从本地主机(即本地代理实例的主机机器)连接到控制台。
-
第一个星号(
*)通配符允许在连接请求中指定http或https方案,具体取决于您是否已为安全连接配置了控制台。 - 第二个星号通配符允许主机计算机上的任何端口用于连接。
-
第一个星号(
-
使用本地代理的外部可访问的 IP 地址,从远程主机连接到本地代理的控制台。在这种情况下,本地代理的外部可访问的 IP 地址为
192.168.0.49。 -
从在另一个远程代理中打开的控制台会话内连接到本地代理。在本例中,远程代理的 IP 地址为
192.168.0.51。
-
保存
jolokia-access.xml文件。 -
打开 &
lt;broker_instance_dir> /etc/artemis.profile文件。 若要在控制台中启用 Connect 选项卡,请将
Dhawtio.disableProxy参数的值设置为false。-Dhawtio.disableProxy=false
-Dhawtio.disableProxy=falseCopy to Clipboard Copied! Toggle word wrap Toggle overflow 重要建议您仅在控制台公开给安全网络时启用来自控制台的远程连接(即,将
Dhawtio.disableProxy参数的值设置为false)。将新参数
Dhawtio.proxyWhitelist添加到 Java 系统参数的JAVA_ARGS列表中。作为用逗号分开的列表,为您要从本地代理连接的任何远程代理指定 IP 地址(即,使用本地代理上运行的控制台会话中的 Connect 选项卡)。例如:-Dhawtio.proxyWhitelist=192.168.0.51
-Dhawtio.proxyWhitelist=192.168.0.51Copy to Clipboard Copied! Toggle word wrap Toggle overflow 根据上述配置,您可以使用本地代理的控制台会话中的 Connect 选项卡连接到另一个远程代理,IP 地址为
192.168.0.51。-
保存
aretmis.profile文件。
其他资源
- 要了解如何访问控制台,请参阅 第 4.3 节 “访问 AMQ 管理控制台”。
有关以下内容的更多信息:
- 跨资源共享,请参阅 W3C Recommendations。
- Jolokia 安全,请参阅 Jolokia 协议。
- 保护到控制台的连接,请参阅 第 4.4.3 节 “保护对 AMQ 管理控制台的网络访问”。
4.3. 访问 AMQ 管理控制台 复制链接链接已复制到粘贴板!
本节中的流程演示了如何:
- 从本地代理打开 AMQ 管理控制台
- 从本地代理上的控制台会话连接到其他代理
- 使用本地代理的外部可访问的 IP 地址,从远程主机为本地代理打开控制台实例
先决条件
- 您必须已配置了本地和远程访问控制台。更多信息请参阅 第 4.2 节 “配置对 AMQ 管理控制台的本地和远程访问”。
流程
在网页浏览器中,进入到本地代理的控制台地址。
控制台地址为
http:// <host:port> /console/login。如果您使用默认地址,请进入 http://localhost:8161/console/login。否则,使用为 <broker_instance_dir> /etc/bootstrap.xml配置文件中web元素的bind属性定义的主机和端口值。- 使用您在创建代理时创建的默认用户名和密码登录到 AMQ 管理控制台。
要从本地代理的控制台会话连接到另一个远程代理:
- 在左侧菜单中点击 连接 选项卡。
- 在主窗格中,在 Remote 选项卡中点 Add connection 按钮。
在 Add Connection 对话框中指定以下详情:
- 名称
-
远程连接的名称,如
my_other_broker。 - Scheme
-
用于远程连接的协议。为非安全连接选择
http,或为安全连接选择https。 - 主机
- 远程代理的 IP 地址。您必须已经为这个远程代理配置了控制台访问权限。
- 端口
-
用于远程连接的本地代理上的端口。指定为 <
broker_instance_dir> /etc/bootstrap.xml配置文件中web元素的bind属性定义的 port 值。默认值为8161。 - 路径
-
用于控制台访问的路径。指定
console/jolokia。
要测试连接,请单击 Test Connection 按钮。
如果连接测试成功,点 Add 按钮。如果连接测试失败,请根据需要检查并修改连接详情。再次测试连接。
在 Remote 页面中,对于您添加的连接,点 Connect 按钮。
为远程代理上的控制台实例打开一个新的 Web 浏览器标签页。
在 Log In 对话框中,为远程代理输入用户名和密码。点 Log In。
远程代理的控制台实例将打开。
要从远程主机连接至本地代理控制台,请在 Web 浏览器中为本地代理指定 Jolokia 端点。此端点包括您在配置远程控制台访问时为本地代理指定的外部可访问的 IP 地址。例如:
http://192.168.0.49/console/jolokia
http://192.168.0.49/console/jolokiaCopy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4. 配置 AMQ 管理控制台 复制链接链接已复制到粘贴板!
配置用户访问和请求对代理资源的访问权限。
4.4.1. 使用红帽单点登录保护 AMQ 管理控制台 复制链接链接已复制到粘贴板!
先决条件
- Red Hat Single Sign-On 7.4
流程
配置 Red Hat Single Sign-On:
-
导航到您要用来保护 AMQ 管理控制台的 Red Hat Single Sign-On 中的域。Red Hat Single Sign-On 中的每个域都包含一个名为
Broker的客户端。此客户端与 AMQ 无关。 -
在 Red Hat Single Sign-On 中创建一个新客户端,如
artemis-console。 进入客户端设置页面并设置:
有效的 Redirect URI 到 AMQ 管理控制台 URL,后跟
*,例如:https://broker.example.com:8161/console/*
https://broker.example.com:8161/console/*Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
Web Origins 与 Valid Redirect URIs 的值相同。Red Hat Single Sign-On 允许您输入
+,表示允许的 CORS 来源包括 Valid Redirect URI 的值。
-
为客户端创建一个角色,如
guest。 - 确保所有需要访问 AMQ 管理控制台的用户都会被分配上述角色,例如使用红帽单点登录组。
-
导航到您要用来保护 AMQ 管理控制台的 Red Hat Single Sign-On 中的域。Red Hat Single Sign-On 中的每个域都包含一个名为
配置 AMQ Broker 实例:
将以下内容添加到 <
broker-instance-dir> /instances/broker0/etc/login.config文件中,以将 AMQ 管理控制台配置为使用 Red Hat Single Sign-On:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 添加此配置会设置 JAAS 主体以及来自 Red Hat Single Sign-On 的 bearer 令牌的要求。与 Red Hat Single Sign-On 的连接在
keycloak-bearer-token.json文件中定义,如下一步所述。创建包含以下内容的文件 <
;broker-instance-dir> /etc/keycloak-bearer-token.json,以指定与用于 bearer 令牌交换的 Red Hat Single Sign-On 的连接:Copy to Clipboard Copied! Toggle word wrap Toggle overflow <realm-name>- Red Hat Single Sign-On 中的域名称
<client-name>- Red Hat Single Sign-On 中的客户端名称
<RHSSO-URL>- Red Hat Single Sign-On 的 URL
创建包含以下内容的文件 <
;broker-instance-dir> /etc/keycloak-js-token.json以指定 Red Hat Single Sign-On 身份验证端点:{ "realm": "<realm-name>", "clientId": "<client-name>", "url": "<RHSSO-URL>/auth" }{ "realm": "<realm-name>", "clientId": "<client-name>", "url": "<RHSSO-URL>/auth" }Copy to Clipboard Copied! Toggle word wrap Toggle overflow 通过编辑 <
broker-instance-dir> /etc/broker.xml 文件来配置安全设置。例如,要允许具有
amq角色的用户使用消息并允许具有guest角色的用户发送消息,请添加以下内容:Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 运行 AMQ Broker 实例并验证 AMQ 管理控制台配置。
4.4.2. 设置用户对 AMQ 管理控制台的访问权限 复制链接链接已复制到粘贴板!
您可以使用代理登录凭证访问 AMQ 管理控制台。下表提供了有关添加额外代理用户访问 AMQ 管理控制台的不同方法的信息:
| 身份验证方法 | 描述 |
|---|---|
| 客户机身份验证 | 启用匿名访问。在此配置中,任何没有凭证或带有错误的凭据的用户都会被自动验证并分配特定的用户和角色。 如需更多信息, 请参阅配置 AMQ Broker 中的 配置 客户机访问。 |
| 基本用户和密码身份验证 | 对于每个用户,您必须定义一个用户名和密码,并分配一个安全角色。用户只能使用这些凭证登录到 AMQ 管理控制台。 如需更多信息, 请参阅配置 AMQ Broker 中的 配置基本用户和密码身份验证。 |
| LDAP 身份验证 | 通过针对存储在中央 X.500 目录服务器中的用户数据检查凭据,对用户进行身份验证和授权。 如需更多信息, 请参阅配置 AMQ Broker 中的 配置 LDAP 以验证客户端。 |
4.4.3. 保护对 AMQ 管理控制台的网络访问 复制链接链接已复制到粘贴板!
要在通过 WAN 或互联网访问控制台时保护 AMQ 管理控制台,请使用 SSL 指定该网络访问使用 https,而不是 http。
先决条件
以下应位于 < broker_instance_dir>/etc/ 目录中:
- Java 密钥存储
- Java 信任存储(只在需要客户端身份验证时才需要)
流程
-
打开 &
lt;broker_instance_dir> /etc/bootstrap.xml文件。 在 &
lt;web> 元素中,添加以下属性:<web path="web"> <binding uri="https://0.0.0.0:8161" keyStorePath="<path_to_keystore>" keyStorePassword="<password>" clientAuth="<true/false>" trustStorePath="<path_to_truststore>" trustStorePassword="<password>"> </binding> </web><web path="web"> <binding uri="https://0.0.0.0:8161" keyStorePath="<path_to_keystore>" keyStorePassword="<password>" clientAuth="<true/false>" trustStorePath="<path_to_truststore>" trustStorePassword="<password>"> </binding> </web>Copy to Clipboard Copied! Toggle word wrap Toggle overflow - bind
-
对于到控制台的安全连接,请将 URI 方案更改为
https。 - keyStorePath
密钥存储文件的路径。例如:
keyStorePath="<broker_instance_dir>/etc/keystore.jks"
keyStorePath="<broker_instance_dir>/etc/keystore.jks"Copy to Clipboard Copied! Toggle word wrap Toggle overflow - keyStorePassword
- 密钥存储密码。此密码可以加密。
- clientAuth
-
指定是否需要客户端身份验证。默认值为
false。 - trustStorePath
-
信任存储文件的路径。只有在
clientAuth设为true时才需要定义此属性。 - trustStorePassword
- 信任存储密码。此密码可以加密。
其他资源
-
有关在代理配置文件中加密密码的更多信息,包括
bootstrap.xml,请参阅 配置文件 中的加密密码。
4.4.4. 配置 AMQ 管理控制台以使用基于证书的身份验证 复制链接链接已复制到粘贴板!
您可以配置 AMQ 管理控制台,以使用证书而不是密码验证用户身份。
流程
从可信证书颁发机构获取代理和客户端的证书,或生成自签名证书。如果要生成自签名证书,请完成以下步骤:
为代理生成自签名证书。
keytool -storetype pkcs12 -keystore broker-keystore.p12 -storepass securepass -keypass securepass -alias client -genkey -keyalg "RSA" -keysize 2048 -dname "CN=ActiveMQ Broker, OU=Artemis, O=ActiveMQ, L=AMQ, S=AMQ, C=AMQ" -ext bc=ca:false -ext eku=cA
$ keytool -storetype pkcs12 -keystore broker-keystore.p12 -storepass securepass -keypass securepass -alias client -genkey -keyalg "RSA" -keysize 2048 -dname "CN=ActiveMQ Broker, OU=Artemis, O=ActiveMQ, L=AMQ, S=AMQ, C=AMQ" -ext bc=ca:false -ext eku=cACopy to Clipboard Copied! Toggle word wrap Toggle overflow 从代理密钥存储导出证书,以便它可以与客户端共享。
keytool -storetype pkcs12 -keystore broker-keystore.p12 -storepass securepass -alias client -exportcert -rfc > broker.crt
$ keytool -storetype pkcs12 -keystore broker-keystore.p12 -storepass securepass -alias client -exportcert -rfc > broker.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在客户端上,将代理证书导入到客户端信任存储中。
keytool -storetype pkcs12 -keystore client-truststore.p12 -storepass securepass -keypass securepass -importcert -alias client-ca -file broker.crt -noprompt
$ keytool -storetype pkcs12 -keystore client-truststore.p12 -storepass securepass -keypass securepass -importcert -alias client-ca -file broker.crt -nopromptCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在客户端上,为客户端生成自签名证书。
keytool -storetype pkcs12 -keystore client-keystore.p12 -storepass securepass -keypass securepass -alias client -genkey -keyalg "RSA" -keysize 2048 -dname "CN=ActiveMQ Client, OU=Artemis, O=ActiveMQ, L=AMQ, S=AMQ, C=AMQ" -ext bc=ca:false -ext eku=cA
$ keytool -storetype pkcs12 -keystore client-keystore.p12 -storepass securepass -keypass securepass -alias client -genkey -keyalg "RSA" -keysize 2048 -dname "CN=ActiveMQ Client, OU=Artemis, O=ActiveMQ, L=AMQ, S=AMQ, C=AMQ" -ext bc=ca:false -ext eku=cACopy to Clipboard Copied! Toggle word wrap Toggle overflow 将客户端密钥存储中的客户端证书导出到文件,以便可以将其添加到代理信任存储中。
keytool -storetype pkcs12 -keystore client-keystore.p12 -storepass securepass -alias client -exportcert -rfc > client.crt
$ keytool -storetype pkcs12 -keystore client-keystore.p12 -storepass securepass -alias client -exportcert -rfc > client.crtCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将客户端证书导入到代理信任存储中。
keytool -storetype pkcs12 -keystore client-truststore.p12 -storepass securepass -keypass securepass -importcert -alias client-ca -file client.crt -noprompt
$ keytool -storetype pkcs12 -keystore client-truststore.p12 -storepass securepass -keypass securepass -importcert -alias client-ca -file client.crt -nopromptCopy to Clipboard Copied! Toggle word wrap Toggle overflow 注意在代理机器上,确保 keystore 和 truststore 文件位于代理可访问的位置。
在 &
lt;broker_instance_dir>/etc/bootstrap.xml文件中,更新 web 配置以便为代理控制台启用 HTTPS 协议和客户端身份验证。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow binding uri- 指定 https 协议以启用 SSL 并添加主机名和端口。
keystorePath- 安装代理证书的密钥存储的路径。
keystorePassword- 安装代理证书的密钥存储的密码。
clientAuth- 设置为 true,以便当客户端尝试连接到代理控制台时,每个客户端都会显示证书。
trustStorePath- 如果客户端使用自签名证书,请指定安装客户端证书的信任存储的路径。
trustStorePassword如果客户端使用自签名证书,请指定安装客户端证书的信任存储的密码。
注意:只有在客户端使用自签名证书时,才需要配置
trustStorePath和trustStorePassword属性。
从每个客户端证书获取 Subject Distinguished Names (DN),以便您可以在每个客户端证书和代理用户之间创建映射。
将客户端的密钥存储文件中的每个客户端证书导出到临时文件中。例如:
keytool -export -file <file_name> -alias broker-localhost -keystore broker.ks -storepass <password>
keytool -export -file <file_name> -alias broker-localhost -keystore broker.ks -storepass <password>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 打印导出的证书的内容:
keytool -printcert -file <file_name>
keytool -printcert -file <file_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出结果类似如下:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Owner条目是主题 DN。用于输入 Subject DN 的格式取决于您的平台。以上字符串也可以表示为;Owner: `CN=localhost,\ OU=broker,\ O=Unknown,\ L=Unknown,\ ST=Unknown,\ C=Unknown`
Owner: `CN=localhost,\ OU=broker,\ O=Unknown,\ L=Unknown,\ ST=Unknown,\ C=Unknown`Copy to Clipboard Copied! Toggle word wrap Toggle overflow
为代理的控制台启用基于证书的身份验证。
打开 &
lt;broker_instance_dir> /etc/login.config配置文件。添加证书登录模块并引用用户和角色属性文件。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow org.apache.activemq.artemis.spi.core.security.jaas.TextFileCertificateLoginModule- 实施类。
org.apache.activemq.jaas.textfiledn.user- 指定与包含登录配置文件的目录相关的用户属性文件的位置。
org.apache.activemq.jaas.textfiledn.role指定将用户映射到登录模块实施定义的角色的属性文件。
注意如果您更改了 <
broker_instance_dir> /etc/login.config 文件中的证书登录模块配置的默认名称,您必须更新 <broker_instance_dir>/etc/artemis.profile文件中的 certificate 登录模块配置的值,以匹配新名称。默认名称为activemq。
打开 &
lt;broker_instance_dir>/etc/artemis-users.properties文件。通过将您从每个客户端证书获取的主题 DNS 添加到代理用户,在客户端证书和代理用户之间创建映射。例如:user1=CN=user1,O=Progress,C=US user2=CN=user2,O=Progress,C=US
user1=CN=user1,O=Progress,C=US user2=CN=user2,O=Progress,C=USCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在本例中,user1 代理用户映射到客户端证书,其 Subject Distinguished Name 为 CN=user1,O=Progress,C=US Subject DN。在客户端证书和代理用户之间创建映射后,代理可以使用该证书验证用户。
打开 &
lt;broker_instance_dir>/etc/artemis-roles.properties文件。通过在为 <broker_instance_dir>/etc/artemis.profile 文件中的 HAWTIO_ROLE 变量指定的角色中添加他们来登录控制台的权限。HAWTIO_ROLE 变量的默认值为amq。例如:amq=user1, user2
amq=user1, user2Copy to Clipboard Copied! Toggle word wrap Toggle overflow
为 HTTPS 协议配置以下推荐的安全属性。
-
打开 &
lt;broker_instance_dir>/etc/artemis.profile文件。 将
hawtio.http.strictTransportSecurity属性设置为只允许 HTTPS 请求到 AMQ 管理控制台,并将任何 HTTP 请求转换为 HTTPS。例如:hawtio.http.strictTransportSecurity = max-age=31536000; includeSubDomains; preload
hawtio.http.strictTransportSecurity = max-age=31536000; includeSubDomains; preloadCopy to Clipboard Copied! Toggle word wrap Toggle overflow 设置
hawtio.http.publicKeyPins属性,指示 Web 浏览器将特定的加密密钥与 AMQ 管理控制台相关联,以使用伪证书降低"man-in-the-middle"攻击的风险。例如:hawtio.http.publicKeyPins = pin-sha256="..."; max-age=5184000; includeSubDomains
hawtio.http.publicKeyPins = pin-sha256="..."; max-age=5184000; includeSubDomainsCopy to Clipboard Copied! Toggle word wrap Toggle overflow
-
打开 &
4.4.5. 配置 AMQ 管理控制台以处理 X 转发的标头 复制链接链接已复制到粘贴板!
如果对 AMQ 管理控制台的请求通过代理服务器路由,您可以配置 AMQ Broker 嵌入式 Web 服务器(托管 AMQ 管理控制台)以处理 X-Forwarded 标头。通过处理 X-Forwarded 标头,AMQ Management Console 可以接收在请求路径中涉及代理时更改或丢失的标头信息。例如,代理可以使用 HTTPS 来公开 AMQ 管理控制台,以及使用 HTTP 的 AMQ 管理控制台(从浏览器和代理之间的连接)标识,代理使用 HTTPS 并切换到 HTTPS 来提供浏览器请求。
流程
-
打开 &
lt;broker_instance_dir> /etc/bootstrap.xml文件。 在 &
lt;web> 元素中,添加customizer属性,值为org.eclipse.jetty.server.ForwardedRequestCustomizer。例如:<web path="web" customizer="org.eclipse.jetty.server.ForwardedRequestCustomizer"> .. </web>
<web path="web" customizer="org.eclipse.jetty.server.ForwardedRequestCustomizer"> .. </web>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存
bootstrap.xml文件。 输入以下命令启动或重启代理:
-
在 Linux: &
lt;broker_instance_dir> /bin/artemis run -
在 Windows: &
lt;broker_instance_dir> \bin\artemis-service.exe start
-
在 Linux: &
4.5. 使用 AMQ 管理控制台管理代理 复制链接链接已复制到粘贴板!
您可以使用 AMQ 管理控制台查看有关正在运行的代理的信息并管理以下资源:
- 传入网络连接(接收器)
- addresses
- 队列
4.5.1. 查看有关代理的详情 复制链接链接已复制到粘贴板!
要了解代理的配置方式,请在左侧菜单中,单击 Artemis。
在主窗格中,有以下标签:
Status显示代理当前状态的信息,如版本信息、运行时间以及部署的高可用性策略。另外,还显示代理当前使用的地址内存量。图将此值显示为
global-max-size配置参数的比例。图 4.1. Status 标签页
连接- 显示代理连接的信息,包括客户端、集群和网桥连接。
会话- 显示有关当前在代理上打开的所有会话的信息。
消费者- 显示有关代理上当前打开的所有用户的信息。
producers- 显示有关代理上当前打开的制作者的信息。
addresses- 显示代理中地址的信息。这包括内部地址,如 storage-and-forward 地址。
队列- 显示代理中队列的信息。这包括内部队列,如 storage-and-forward 队列。
代理图- 显示集群拓扑图。这包括集群中的所有代理以及本地代理中的任何地址和队列。
4.5.2. 查看代理图 复制链接链接已复制到粘贴板!
您可以查看拓扑中所有 AMQ Broker 资源的示意图,包括代理(活跃和备份代理)、生成者和消费者、地址和队列。
流程
- 在左侧菜单中,单击 Artemis。
在主窗格中,点 Broker 图表 选项卡。
控制台显示集群拓扑图。这包括集群中的所有代理以及本地代理上的任何地址和队列,如图所示。
图 4.2. 代理图 标签页
- 要更改图中显示的项目,请在 Node options 列表中选中您要显示的项目的复选框。
要显示本地代理或连接到它的地址或队列的属性,请在图表中点该节点。例如,下图展示了一个图,其中还包含本地代理的属性。
图 4.3. 代理图 标签页,包括属性
4.5.3. 查看接受者 复制链接链接已复制到粘贴板!
您可以查看为代理配置的 acceptors 的详情。
流程
- 在左侧菜单中,单击 Artemis JMX。
- 在文件夹树中,单击 acceptors。
要查看有关如何配置 acceptor 的详细信息,请点接受者。
控制台在 Attributes 选项卡中显示 acceptor 属性,以及您可以对 Operations 选项卡执行 acceptor 的操作。
以下示例显示了
amqpacceptor 的属性。图 4.4. AMQP 接受器属性
- 要查看属性的完整详情,请点属性。此时会打开一个额外窗格以显示详细信息。
- 要对接受者执行操作,请单击 Operations 选项卡,展开操作并单击 Execute 按钮。
4.5.4. 管理地址和队列 复制链接链接已复制到粘贴板!
一个地址代表消息传递端点。在配置中,一个典型的地址被赋予一个唯一的名称。
队列与地址关联。每个地址可以有多个队列。当传入消息与地址匹配后,该消息将发送到一个或多个队列,具体取决于配置的路由类型。可以将队列配置为自动创建和删除。
4.5.4.1. 创建地址 复制链接链接已复制到粘贴板!
典型的地址被授予唯一名称、零个或多个队列,以及路由类型。
路由类型决定了消息如何发送到与地址关联的队列。可以使用两种不同的路由类型来配置地址。
| 如果您希望您的消息路由到… | 使用此路由类型… |
| 匹配地址中的单个队列以点对点的方式进行。 | anycast |
| 匹配地址内的每个队列都以发布订阅方式进行。 | 多播 |
您可以创建和配置地址和队列,然后在不再使用它们时删除它们。
流程
- 在左侧菜单中,单击 Artemis。
- 在主窗格中,单击 Addresses 选项卡。
单击 Create Address。
此时会显示 Create Address 对话框。
图 4.5. 创建地址对话框
完成以下字段:
地址名称- 地址的路由名称。
路由类型选择以下选项之一:
-
多播:发送到地址的消息以发布订阅方式分发到所有订阅者。 -
anycast:发送到此地址的消息以点对点的方式分布到一个订阅者。
-
- 单击 Create Address。
4.5.4.2. 将消息发送到地址 复制链接链接已复制到粘贴板!
您可以使用控制台将消息发送到地址。
流程
- 在左侧菜单中,单击 Artemis。
- 在主窗格中,单击 Addresses 选项卡。
- 单击所选地址的三点图标。
单击 Send Message。
此时会显示 Send Message to Address <address name> 对话框。
图 4.6. 发送消息到地址
- 默认情况下,消息会使用您用来登录到 AMQ 管理控制台的凭证发送。如果要使用不同的凭证,请清除 Use Current Logged in User 复选框,并在 Username 和 Password 字段中指定值,这些值在清除复选框后显示。
- 如有必要,点 Add Header 按钮来添加消息标头信息。
- 输入消息正文。
- 在 Format 下拉菜单中,为消息正文格式选择一个选项,然后单击 Format。消息正文以人类可读的样式格式化,用于您选择的格式。
单击 Send。
消息被发送。
- 要发送附加消息,请更改您输入的任何信息,然后单击 Send。
4.5.4.3. 创建队列 复制链接链接已复制到粘贴板!
队列在生成者和消费者之间提供频道。
先决条件
- 要绑定队列的地址必须存在。要了解如何使用控制台创建地址,请参阅 第 4.5.4.1 节 “创建地址”。
流程
- 在左侧菜单中,单击 Artemis。
- 在主窗格中,单击 Addresses 选项卡。
- 单击您要将队列绑定到的地址的三点图标。
单击 Create Queue。
此时会显示 Create Queue on Address <address name> 对话框
图 4.7. 在 Address 对话框上创建 Queue
完成以下字段:
队列名称- 队列的唯一名称。
路由类型选择以下选项之一:
-
多播:发送到父地址的消息将分发到绑定到该地址的所有队列。 -
anycast: 只有绑定到父地址的队列才会接收消息的副本。消息将在绑定到地址的所有队列中平均分配。
-
Durable- 如果选择这个选项,则队列及其消息将具有持久性。
Filter- 连接到代理时使用的用户名。
Max Consumers- 在给定时间可以访问队列的最大消费者数。
当没有 Consumers 时清除- 如果选中,则无用户连接时将清除队列。
- 单击 Create Queue。
4.5.4.4. 检查队列的状态 复制链接链接已复制到粘贴板!
chart 提供代理中队列状态的实时视图。
流程
- 在左侧菜单中,单击 Artemis JMX。
- 在文件夹树中,导航到队列。
单击 Chart 选项卡。
控制台会显示一个图表,显示队列属性的实时数据。
图 4.8. 队列的 Chart 标签页
注意要查看一个地址中的多个队列的图表,请选择包含队列的
anycast或multicast文件夹。默认情况下,队列的所有属性会显示在图表中。如果需要,更改 chart 中显示的属性列表:
- 单击 Edit watches。
-
在
Watched attributes列表中,选择您不想包含在图表中的每个属性旁边的复选框。 - 点向右箭头图标从 chart 中删除所选属性。
- 单击 Close。
4.5.4.5. 浏览队列 复制链接链接已复制到粘贴板!
浏览队列会显示队列中的所有消息。您还可以过滤列表并排序列表以查找特定消息。
流程
- 在左侧菜单中,单击 Artemis。
- 在主窗格中,单击 Queues 选项卡。
- 单击您要浏览的队列的三点图标。
单击 Browse Messages。
此时会显示队列中的消息。默认情况下会显示前 200 个消息。
图 4.9. 浏览队列对话框
要查看消息的内容,请单击消息的三ot图标,然后单击 View。
您可以查看消息正文、标头和属性。
4.5.4.6. 发送消息到队列 复制链接链接已复制到粘贴板!
创建队列后,您可以向它发送消息。
流程
- 在左侧菜单中,单击 Artemis。
- 在主窗格中,单击 Queues 选项卡。
- 单击您要向其发送消息的队列的三点图标。
单击 Send Message。
此时会显示 Send Message to Queue <queue name> 对话框
图 4.10. 发送消息到队列对话框
- 默认情况下,消息会使用您用来登录到 AMQ 管理控制台的凭证发送。如果要使用不同的凭证,请清除 Use Current Logged in User 复选框,并在 Username 和 Password 字段中指定值,这些值在清除复选框后显示。
- 如有必要,点 Add Header 按钮来添加消息标头信息。
- 输入消息正文。
- 在 Format 下拉菜单中,为消息正文格式选择一个选项,然后单击 Format。消息正文以人类可读的样式格式化,用于您选择的格式。
- 单击 Send。
- 要发送附加消息,请更改您输入的任何信息,然后单击 Send。
4.5.4.7. 将消息重新发送到队列 复制链接链接已复制到粘贴板!
您可以重新发送之前发送的消息。
流程
- 浏览您要重新发送的消息。
- 单击您要重新发送的消息的三点图标。
单击 Resend。
此时会显示 Resend Message 对话框。
- 根据需要更新 消息标头和正文,然后单击 Send。
4.5.4.8. 将消息移动到不同的队列中 复制链接链接已复制到粘贴板!
您可以将队列中的一个或多个消息移到不同的队列中。
流程
- 浏览您要移动的消息。
- 点击您要移动的每个消息旁边的复选框。
单击 Move。
此时会显示确认对话框。
- 从下拉菜单中,选择要将消息移到的队列的名称。单击 Confirm。
4.5.4.9. 删除消息或队列 复制链接链接已复制到粘贴板!
您可以删除队列中的所有消息并保留队列,或者删除队列及其包含的任何消息。
流程
- 在左侧菜单中,单击 Artemis。
- 在主窗格中,单击 Queues 选项卡。
单击您要清除或删除的队列的三点图标。
- 要删除所选队列中的所有消息,而不删除队列,请单击 Purge。
- 要删除所有消息和队列本身,请单击 Delete。
- 在确认对话框中,单击 Confirm。
第 5 章 监控代理运行时指标 复制链接链接已复制到粘贴板!
安装 AMQ Broker 时,安装中包含了一个 Prometheus metrics 插件。Prometheus 是为监控大型、可扩展的系统而构建的软件,并在较长时间内存储历史运行时数据。您必须修改代理配置以启用插件。启用后,插件会为代理收集运行时指标,并将其导出为 Prometheus 格式。然后,您可以使用 Prometheus 查看指标。您还可以使用图形化工具(如 Grafana)来配置数据的更多高级视觉化。
Prometheus metrics 插件允许您以 Prometheus 格式 收集和导出代理指标。但是,红帽不提供对 Prometheus 本身的安装或配置的支持,也不支持 Grafana 等视觉化工具。如果您需要对安装、配置或运行 Prometheus 或 Grafana 的支持,请访问社区支持和文档等资源的 Web 站点。
除了 Prometheus 插件收集的代理指标外,您还可以修改代理配置,以捕获与代理主机 Java 虚拟机(JVM)相关的标准指标集合。特别是,您可以捕获 Garbage Collection (GC)、内存和线程的 JVM 指标。
以下章节描述如下:
5.1. 指标概述 复制链接链接已复制到粘贴板!
要监控代理实例的健康状态和性能,您可以使用 AMQ Broker 的 Prometheus 插件来监控和存储代理运行时指标。AMQ Broker Prometheus 插件将代理运行时指标导出到 Prometheus 格式,可让您使用 Prometheus 本身来视觉化并在数据上运行查询。
您还可以使用图形工具(如 Grafana)为 Prometheus 插件收集的指标配置更高级的视觉化和仪表板。
插件导出到 Prometheus 格式的指标如下所述。
代理指标
artemis_address_memory_usage- 此代理中的所有地址使用的字节数用于内存中消息。
artemis_address_memory_usage_percentage-
此代理上的所有地址使用的内存作为
global-max-size参数的百分比。 artemis_connection_count- 连接到此代理的客户端数量。
artemis_session_count- 此代理上的会话数量。
artemis_total_session_count- 此代理上创建的会话总数(自此代理启动)。
artemis_total_connection_count- 自此代理启动以来已连接到此代理的客户端数量。
artemis_disk_store_usage- 使用的总磁盘存储部分。
artemis_replica_sync- 是主代理和备份代理之间的初始复制同步过程。
artemis_active- 是在 primary-backup 组配置中活跃的代理。
artemis_authentication_count- 成功和失败的身份验证尝试次数。
artemis_authorization_count- 成功和失败的授权尝试次数。
地址指标
artemis_routed_message_count- 路由到一个或多个队列绑定的消息数。
artemis_unrouted_message_count- 没有路由到任何队列绑定的消息数。
artemis_address_size- 绑定到这个地址的所有队列所使用的大小,以字节为单位。
artemis_number_of_pages- 用于存储此地址消息的页面文件数。
artemis_limit_percent-
此地址使用的内存限值的百分比。如果使用
max-size-bytes属性为地址设置了内存限制,则报告的百分比基于该值。如果没有设置max-size-bytes属性,则报告的百分比基于global-max-size属性的值。如果没有设置属性,则会报告值 0。
队列指标
artemis_consumer_count- 消耗来自给定队列的消息的客户端数量。
artemis_delivering_durable_message_count- 给定队列当前提供给消费者的持久消息数。
artemis_delivering_durable_persistent_size- 给定队列当前提供给消费者的持久化消息的持久大小。
artemis_delivering_message_count- 指定队列当前提供给消费者的消息数。
artemis_delivering_persistent_size- 给定队列当前提供给消费者的消息的持久大小。
artemis_durable_message_count- 当前位于给定队列中的持久消息数。这包括已调度、分页和发送的消息。
artemis_durable_persistent_size- 当前在给定队列中的持久大小。这包括已调度、分页和发送的消息。
artemis_messages_acknowledged- 自队列创建以来,确认自给定队列确认的消息数。
artemis_messages_added- 自队列创建以来,添加到给定队列中的消息数量。
artemis_message_count- 当前在给定队列中的消息数。这包括已调度、分页和发送的消息。
artemis_messages_killed- 自队列创建以来,从给定队列中删除的消息数。当消息超过配置的最大发送尝试次数时,代理会终止一条消息。
artemis_messages_expired- 自队列创建以来,从给定队列过期的消息数。
artemis_persistent_size- 当前在给定队列中所有消息的持久大小(持久和非持久化)。这包括已调度、分页和发送的消息。
artemis_scheduled_durable_message_count- 给定队列中的持久调度消息数。
artemis_scheduled_durable_persistent_size- 持久化的、给定队列中调度的消息。
artemis_scheduled_message_count- 给定队列中的调度消息数。
artemis_scheduled_persistent_size- 在给定队列中调度的消息的持久性大小。
对于上面未列出的高级别代理指标,您可以通过聚合较低级别的指标来计算这些指标。例如,要计算总消息计数,您可以聚合代理部署中的所有队列的 artemis_message_count 指标。
对于 RHEL 上的 AMQ Broker 的独立部署,托管代理的 Java 虚拟机(JVM)的指标也会导出到 Prometheus 格式。这不适用于在 OpenShift Container Platform 上部署 AMQ Broker。
5.2. 为 AMQ Broker 启用 Prometheus 指标插件 复制链接链接已复制到粘贴板!
安装 AMQ Broker 时,安装中包含了一个 Prometheus metrics 插件。虽然插件已被配置为使用,您需要在代理配置中启用插件。启用后,插件会为代理收集运行时指标,并将其导出为 Prometheus 格式。
以下流程演示了如何为 AMQ Broker 启用 Prometheus 插件。
流程
-
打开 &
lt;broker_instance_dir> /etc/broker.xml配置文件。 在代理配置中启用 Prometheus 插件。添加带有 &
lt;> 元素,如下所示。plugin> 子元素的 <metrics<metrics> <plugin class-name="com.redhat.amq.broker.core.server.metrics.plugins.ArtemisPrometheusMetricsPlugin"/> </metrics><metrics> <plugin class-name="com.redhat.amq.broker.core.server.metrics.plugins.ArtemisPrometheusMetricsPlugin"/> </metrics>Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存
broker.xml配置文件。metrics 插件开始以 Prometheus 格式收集代理运行时指标。
5.3. 配置代理以收集 JVM 指标 复制链接链接已复制到粘贴板!
以下流程演示了如何配置代理来为 Garbage Collection (GC)、内存和线程收集 Java 虚拟机(JVM)指标。
先决条件
- 您之前已在代理配置中启用了 Prometheus metrics 插件。更多信息请参阅 第 5.2 节 “为 AMQ Broker 启用 Prometheus 指标插件”。
流程
-
打开 &
lt;broker_instance_dir> /etc/broker.xml配置文件。 在启用 Prometheus
metrics 插件时添加到配置的 <metrics> 元素中,指定代理是否为 Garbage Collection (GC)、内存和线程收集 JVM 指标。例如:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您没有将
jvm-memory参数显式添加到配置中并指定值,代理将使用默认值true。这意味着代理默认导出 JVM 内存指标。jvm-gc和jvm-threads参数的默认值为false。-
保存
broker.xml配置文件。代理开始收集您启用的 JVM 指标。这些指标也导出到 Prometheus 格式。
5.4. 禁用特定地址的指标集合 复制链接链接已复制到粘贴板!
当您为 AMQ Broker 配置指标插件(例如,Prometheus 指标插件)时,指标集合会被默认启用。但是,在特定地址 或一组 地址的 address-setting 配置元素内,您可以明确禁用指标集合。
以下流程演示了如何为特定地址 或一组 地址禁用指标集合。
流程
-
打开 &
lt;broker_instance_dir> /etc/broker.xml配置文件。 在匹配地址 或一组 地址的
address-setting元素中,添加enable-metrics参数,并将 参数的值设置为false。例如,以下配置为名为orders的地址禁用指标集合。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
5.5. 使用 Prometheus 访问代理运行时数据 复制链接链接已复制到粘贴板!
先决条件
- 要查询和视觉化 Prometheus 插件收集的代理运行时数据,您需要安装 Prometheus。如需更多信息,请参阅 Prometheus 文档中的安装 Prometheus。
流程
-
在 Prometheus 安装目录中,打开
prometheus.yml配置文件。 -
在配置文件的
static_configs部分中,将targets元素更改为localhost:8161。此位置是代理运行其 Web 服务器的位置。默认情况下,/metrics附加到此主机名,形成存储在代理 web 服务器上的指标的完整路径。 要查看 Prometheus 插件收集的代理运行时指标,请在 web 浏览器中打开
localhost:8161/metrics。在生成的网页中,您会看到插件收集的指标的当前值,具体取决于您在代理上配置的队列和地址。如果您在 JVM 中有多个正在运行的代理实例,您会看到每个代理的指标。
在 Prometheus 安装目录中运行 Prometheus。
./prometheus
$ ./prometheusCopy to Clipboard Copied! Toggle word wrap Toggle overflow 当 Prometheus 启动时,shell 输出包括以下行:
component=web, msg=”Start listening for connections” address=0.0.0.0:9090
component=web, msg=”Start listening for connections” address=0.0.0.0:9090Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上面的行表示 Prometheus 正在侦听端口 9090 上的 HTTP 流量。
-
要访问 Prometheus Web 控制台,请在 Web 浏览器中打开
127.0.0.1:9090。 在 Prometheus web 控制台中,您可以使用
Expression字段在代理数据上创建查询。您创建的查询基于 Prometheus 查询语言 PromQL。在查询中插入的代理指标位于Insert 指标下拉列表中。作为一个简单的示例,假设您希望随着时间的推移查询 DLQ 队列上的消息计数。在这种情况下,从 metrics 下拉列表中选择
artemis_message_count。通过指定 DLQ 队列名称和地址来完成查询。这个示例查询如下所示:artemis_message_count{address=“DLQ”, queue=“DLQ”}artemis_message_count{address=“DLQ”, queue=“DLQ”}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于更高级的视觉化,您可以使用正则表达式来创建覆盖多个指标的复杂查询,例如:或者,您可以对多个指标执行数学操作,如聚合它们。有关创建 Prometheus 查询的更多信息,请参阅 Prometheus 文档中的查询 Prometheus。
第 6 章 使用管理 API 复制链接链接已复制到粘贴板!
AMQ Broker 有广泛的管理 API,您可以使用它修改代理的配置,创建新资源(如地址和队列),检查这些资源(例如,当前保存在队列中的消息)并与它们交互(例如,从队列中删除消息)。
另外,客户端可以使用管理 API 管理代理并订阅管理通知。
6.1. 使用管理 API 管理 AMQ Broker 的方法 复制链接链接已复制到粘贴板!
使用管理 API 管理代理的方法有两种:
- 使用 JMX requiresJMX 是管理 Java 应用程序的标准方法
- 使用 JMS API libpmem-wagonmanagement 操作将利用 JMS 消息和红帽构建的 Apache Qpid JMS 客户端发送到代理
虽然管理代理的方法有两种,但每个 API 支持相同的功能。如果可以使用 JMX 管理资源,也可以通过使用 JMS 消息和红帽构建的 Apache Qpid JMS 客户端来实现相同的结果。
这个选择取决于您的具体要求、应用程序设置和环境。无论您调用管理操作的方式如何,管理 API 都是相同的。
对于每个受管资源,存在一个 Java 接口,描述可以为此类资源调用什么。代理在 org.apache.activemq.artemis.api.core.management 软件包中公开其受管资源。调用管理操作的方式取决于是否使用 JMX 消息或 JMS 消息和红帽构建的 Apache Qpid JMS 客户端。
有些管理操作需要一个 filter 参数来选择由操作影响哪些消息。传递 null 或空字符串意味着管理操作将对所有消息执行。
6.2. 使用 JMX 管理 AMQ Broker 复制链接链接已复制到粘贴板!
您可以使用 Java 管理扩展(JMX)来管理代理。管理 API 由代理使用 MBeans 接口公开。代理将其资源注册到域 org.apache.activemq。
例如,管理名为 exampleQueue 的队列的 ObjectName 是:
org.apache.activemq.artemis:broker="__BROKER_NAME__",component=addresses,address="exampleQueue",subcomponent=queues,routing-type="anycast",queue="exampleQueue"
org.apache.activemq.artemis:broker="__BROKER_NAME__",component=addresses,address="exampleQueue",subcomponent=queues,routing-type="anycast",queue="exampleQueue"
MBean 是:
org.apache.activemq.artemis.api.management.QueueControl
org.apache.activemq.artemis.api.management.QueueControl
MBean 的 ObjectName 使用帮助程序类 org.apache.activemq.artemis.api.core.management.ObjectNameBuilder 构建。您还可以使用 jconsole 来查找您要管理的 MBeans 的 ObjectName。
使用 JMX 管理代理与使用 JMX 管理任何 Java 应用程序的过程相同。它可以通过反映或创建 MBeans 的代理来完成。
6.2.1. 配置 JMX 管理 复制链接链接已复制到粘贴板!
默认情况下,JMX 被启用来管理代理。您可以通过在 broker.xml 配置文件中设置 jmx-management-enabled 属性来启用或禁用 JMX 管理。
流程
-
打开 &
lt;broker_instance_dir> /etc/broker.xml配置文件。 设置 &
lt;jmx-management-enabled>。<jmx-management-enabled>true</jmx-management-enabled>
<jmx-management-enabled>true</jmx-management-enabled>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果启用了 JMX,则可以使用
jconsole在本地管理代理。注意出于安全原因,默认情况下不启用到 JMX 的远程连接。
如果要管理同一
MBeanServer的多个代理,请为每个代理配置 JMX 域。默认情况下,代理使用 JMX 域
org.apache.activemq.artemis。<jmx-domain>my.org.apache.activemq</jmx-domain>
<jmx-domain>my.org.apache.activemq</jmx-domain>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果您在 Windows 系统上使用 AMQ Broker,则需要在
artemis中或artemis.cmd中设置系统属性。shell 脚本位于 <install_dir>/bin下。
其他资源
- 有关为远程管理配置代理的更多信息,请参阅 Oracle 的 Java 管理指南。
6.2.2. 配置 JMX 管理访问 复制链接链接已复制到粘贴板!
默认情况下,出于安全原因,禁用对代理的远程 JMX 访问。但是,AMQ Broker 有一个 JMX 代理,它允许远程访问 JMX MBeans。您可以通过在代理 management.xml 配置文件中配置连接器元素来启用 JMX 访问。
虽然也可以使用 'com.sun.management.jmxremote ' JVM 系统属性启用 JMX 访问,但此方法不被支持且不安全。修改 JVM 系统属性可以绕过代理上的 RBAC。要最小化安全风险,请考虑限制对本地主机的访问。
公开用于远程管理的 JMX 代理的 JMX 代理存在安全隐患。
要保护您的配置,如此流程所述:
- 将 SSL 用于所有连接。
- 显式定义连接器主机,即要公开代理的主机和端口。
- 明确定义 RMI (远程方法调用)registry绑定到的端口。
先决条件
- 正常工作的代理实例
-
Java
jconsole工具
流程
-
打开 &
lt;broker-instance-dir> /etc/management.xml配置文件。 为 JMX 代理定义连接器。connector-port 设置建立 RMI registry,客户端如 jconsole 查询 JMX 连接器服务器。例如,允许在端口 1099 上远程访问:
<connector connector-port="1099"/>
<connector connector-port="1099"/>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
jconsole验证到 JMX 代理的连接:service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在连接器中定义附加属性,如下所述。
- connector-host
-
用于公开代理的代理服务器主机。要防止远程访问,请将
connector-host设置为127.0.0.1(localhost)。 - rmi-registry-port
- JMX RMI 连接器服务器绑定到的端口。如果没有设置,则端口始终是随机的。设置此属性以避免远程 JMX 连接通过防火墙传输的问题。
- jmx-realm
-
用于身份验证的 JMX 域。默认值为
activemq,以匹配 JAAS 配置。 - object-name
-
用于公开远程连接器的对象名称。默认值为
connector:name=rmi。 - 已保护
-
指定连接器是否使用 SSL 保护。默认值为
false。将值设为true以确保安全通信。 - key-store-path
-
密钥存储的位置。如果您设置了
secure="true",则需要此项。 - key-store-password
-
密钥存储密码。如果您设置了
secure="true",则需要此项。可以加密密码。 - key-store-provider
-
密钥存储提供程序。如果您设置了
secure="true",则需要此项。默认值为JKS。 - trust-store-path
-
信任存储的位置。如果您设置了
secure="true",则需要此项。 - trust-store-password
-
truststore 密码。如果您设置了
secure="true",则需要此项。可以加密密码。 - trust-store-provider
-
truststore 供应商。如果您设置了
secure="true",则需要此项。默认值为JKS - password-codec
- 要使用的密码 codec 的完全限定类名称。有关其如何工作的更多详细信息,请参阅以下密码屏蔽文档。
注意RMI registry 选择要绑定到的 IP 地址。如果系统上存在多个 IP 地址/NIC,您可以通过将以下内容添加到
artemis.profile文件:-Djava.rmi.server.hostname=localhost来选择要使用的 IP 地址-
使用
jdk.serialFilter为端点序列化设置适当的值,如 Java 平台文档 中所述。
其他资源
- 有关配置文件中加密密码的更多信息,请参阅 在配置文件中加密密码。
6.2.3. MBeanServer 配置 复制链接链接已复制到粘贴板!
当代理以独立模式运行时,会使用 Java 虚拟机的 平台 MBeanServer 注册其 MBeans。默认情况下,还会部署 Jolokia 以允许使用 REST 访问 MBean 服务器。
6.2.4. 如何使用 Jolokia 公开 JMX 复制链接链接已复制到粘贴板!
默认情况下,AMQ Broker 包括部署为 Web 应用程序的 Jolokia HTTP 代理。Jolokia 是公开 MBeans 的 HTTP 网桥的远程 JMX。
要使用 Jolokia,用户必须属于 < broker_instance_dir> /etc/artemis.profile 配置文件中的 系统属性定义的角色。默认情况下,此角色为 hawtio. rolesamq。
您可以将 Jolokia 请求发送到代理,作为 HTTP GET 请求。这些请求对 Jolokia REST URL 中的所有参数进行编码。
Jolokia REST URL 示例
以下是查找代理版本的请求中的 Jolokia REST URL 示例。Origin 标志应该指定代理服务器的域名或 DNS 主机名。另外,您为 Origin 指定的值必须与 Jolokia cross- Origin Resource Sharing (CORS)规格中的 <allow-origin > 的条目对应。
curl http://admin:admin@localhost:8161/console/jolokia/read/org.apache.activemq.artemis:broker=\"0.0.0.0\"/Version -H "Origin: mydomain.com"
{"request":{"mbean":"org.apache.activemq.artemis:broker=\"0.0.0.0\"","attribute":"Version","type":"read"},"value":"2.4.0.amq-710002-redhat-1","timestamp":1527105236,"status":200}
$ curl http://admin:admin@localhost:8161/console/jolokia/read/org.apache.activemq.artemis:broker=\"0.0.0.0\"/Version -H "Origin: mydomain.com"
{"request":{"mbean":"org.apache.activemq.artemis:broker=\"0.0.0.0\"","attribute":"Version","type":"read"},"value":"2.4.0.amq-710002-redhat-1","timestamp":1527105236,"status":200}
以下是请求中的一个 Jolokia REST URL 示例,以获取 myQueue0 队列的消息计数。
curl -u http://admin:admin@localhost:8161/console/jolokia/read/org.apache.activemq.artemis:broker\=\!%22amq-broker\!%22,component\=addresses,address\=\!%22myAddress0\!%22,subcomponent\=queues,routing-type\=\!%22anycast\!%22,queue\=\!%22myQueue0\!%22/MessageCount
$ curl -u http://admin:admin@localhost:8161/console/jolokia/read/org.apache.activemq.artemis:broker\=\!%22amq-broker\!%22,component\=addresses,address\=\!%22myAddress0\!%22,subcomponent\=queues,routing-type\=\!%22anycast\!%22,queue\=\!%22myQueue0\!%22/MessageCount
您可以通过在 AMQ 管理控制台中为对应的操作复制 Jolokia URL 来查找在特定 HTTP GET 请求中使用的 Jolokia URL。以下示例将 Jolokia URL 复制到用于浏览 myQueue0 队列的 HTTP GET 请求中。复制 URL 后,您可以为您的请求自定义它。
图 6.1. 操作页面
其他资源
- 有关使用 JMX-HTTP 网桥的更多信息,请参阅 Jolokia 文档。
- 有关将用户分配给角色的更多信息,请参阅 添加用户。
- 有关指定 Jolokia cross-Origin Resource Sharing (CORS)的更多信息,请参阅链接第 4.1.5 节: 安全.
6.2.5. 订阅 JMX 管理通知 复制链接链接已复制到粘贴板!
如果环境中启用了 JMX,您可以订阅管理通知。
流程
-
订阅
ObjectName org.apache.activemq.artemis:broker=" <broker-name>".
其他资源
- 有关管理通知的详情,请参考 第 6.5 节 “管理通知”。
6.3. 使用 JMS API 管理 AMQ Broker 复制链接链接已复制到粘贴板!
Java 消息服务(JMS) API 允许您创建、发送、接收和读取消息。您可以使用 JMS 和红帽构建的 Apache Qpid JMS 客户端来管理代理。
6.3.1. 使用 JMS 消息和红帽构建的 Apache Qpid JMS 客户端配置代理管理 复制链接链接已复制到粘贴板!
要使用 JMS 管理代理,您必须首先使用管理权限配置代理的管理地址。
流程
-
打开 &
lt;broker_instance_dir> /etc/broker.xml配置文件。 添加 &
lt;management-address> 元素,并指定管理地址。默认情况下,管理地址是
activemq.management。如果您不希望使用默认地址,您只需要指定不同的地址。<management-address>my.management.address</management-address>
<management-address>my.management.address</management-address>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为管理地址提供
管理用户权限类型。此权限类型使管理地址能够接收和处理管理消息。
<security-setting-match="activemq.management"> <permission-type="manage" roles="admin"/> </security-setting><security-setting-match="activemq.management"> <permission-type="manage" roles="admin"/> </security-setting>Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.2. 使用 JMS API 和红帽构建的 Apache Qpid JMS 客户端管理代理 复制链接链接已复制到粘贴板!
若要使用 JMS 消息调用管理操作,红帽构建的 Apache Qpid JMS 客户端必须实例化特殊的管理队列。
流程
-
创建一个
QueueRequestor,将消息发送到管理地址并接收回复。 -
创建
消息。 -
使用帮助程序类
org.apache.activemq.artemis.api.jms.management.JMSManagementHelper来填充与管理属性的消息。 -
使用
QueueRequestor发送消息。 -
使用帮助程序类
org.apache.activemq.artemis.api.jms.management.JMSManagementHelper从管理回复中检索操作结果。
例 6.1. 查看队列中的消息数
本例演示了如何使用 JMS API 查看 JMS 队列 exampleQueue 中的消息数量:
6.4. 管理操作 复制链接链接已复制到粘贴板!
无论您使用 JMX 或 JMS 消息来管理 AMQ Broker,都可以使用相同的 API 管理操作。使用管理 API,您可以管理代理、地址和队列。
6.4.1. 代理管理操作 复制链接链接已复制到粘贴板!
您可以使用管理 API 管理您的代理。
- 列出、创建、部署和销毁队列
可以使用
getQueueNames ()方法检索部署的队列列表。可以使用管理操作
createQueue ()、deployQueue ()或destroyQueue ()在ActiveMQServerControl(通过ObjectNameorg.apache.activemq.artemis:broker="BROKER_NAME"或资源名称服务器)来创建或销毁队列。如果队列已存在,则
createQueue将失败,而deployQueue将不执行任何操作。- 暂停和恢复队列
-
QueueControl可以暂停并恢复底层队列。当队列暂停时,它将接收消息,但不会发送消息。恢复后,它将开始提供排队的消息(若有)。 - 列出和关闭远程连接
使用
listRemoteAddresses ()检索客户端的远程地址。也可以使用closeConnectionsForAddress ()方法关闭与远程地址关联的连接。或者,使用
listConnectionIDs ()列出连接 ID,并使用listSessions ()列出给定连接 ID 的所有会话。- 管理事务
如果代理崩溃,当代理重启时,一些事务可能需要手动干预。使用以下方法帮助您解决问题。
使用
listPreparedTransactions ()方法列表列出处于准备状态的事务(事务表示为 opaque Base64 String)。使用
commitPreparedTransaction ()或rollbackPreparedTransaction() 提交或回滚给定准备的事务,以解决高度事务的问题。使用 listHeuristic
CommittedTransactions ()和方法,列出大量完成的事务。listHeuristicRolledBackTransactions- 启用和重置消息计数器
使用
enableMessageCounters ()或disableMessageCounters ()方法启用和禁用消息计数器。使用
resetAllMessageCounters ()和resetAllMessageCounterHistories ()方法重置消息计数器。- 检索代理配置和属性
-
ActiveMQServerControl通过其所有属性(如getVersion ()方法)公开代理的配置,以检索代理的版本,等等。 - 列出、创建和销毁 Core Bridge 和 diverts
列出部署的 Core Bridge,并分别使用
getBridgeNames ()和getDivertNames ()方法进行 diverts。使用网桥创建或销毁,并使用
createBridge ()和destroyBridge ()或createDivert ()和destroyDivert ()(通过objectNameorg.apache.activemq.artemis:broker="BROKER_NAME"或 resource nameserver)。- 停止代理并强制故障切换在任何当前附加的客户端中发生
使用
ActiveMQServerControl上的forceFailover ()(带有ObjectNameorg.apache.activemq.artemis:broker="BROKER_NAME"或资源名称服务器)注意由于此方法实际上停止代理,您可能会收到错误。确切的错误取决于您用来调用方法的管理服务。
6.4.2. 地址管理操作 复制链接链接已复制到粘贴板!
您可以使用管理 API 管理地址。
使用带有 ObjectName org.apache.activemq.artemis:broker=" <broker-name> ", component=addresses,address=" <address-name> " 或资源名称 地址的 。
AddressControl 类管理地址的地址
使用 addRole () 或 removeRole () 方法修改地址的角色和权限。您可以使用 getRoles () 方法列出与队列关联的所有角色。
6.4.3. 队列管理操作 复制链接链接已复制到粘贴板!
您可以使用管理 API 管理队列。
核心管理 API 处理队列。QueueControl 类定义队列管理操作(使用 ObjectName,org.apache.activemq.artemis:broker=" <broker-name> ",component=addresses,address=" <bound-address> ",subcomponent=queues,routing-type=" <routing-type> ",queue=" <queue-name>" 或资源名称 queue. <queue-name>)。
队列上的大多数管理操作都采用单一消息 ID (例如,删除单个消息)或过滤器(例如,使具有给定属性的所有消息过期)。
- 过期、发送到死信地址并移动消息
使用
expireMessages ()方法使来自队列的消息过期。如果定义了到期地址,则会将消息发送到此地址,否则会丢弃它们。您可以在broker.xml配置文件的address-settings元素中为地址 或一组 地址(以及绑定到这些地址的队列)定义到期地址。例如,请参阅了解默认 代理配置 中的"默认消息地址设置"部分。使用
sendMessagesToDeadLetterAddress ()方法将消息发送到死信地址。此方法返回发送到死信地址的消息数量。如果定义了死信地址,则会将消息发送到此地址,否则会将它们从队列中删除并丢弃。您可以在broker.xml配置文件的address-settings元素中为地址 或一组 地址(因此绑定到这些地址的队列)定义死信地址。例如,请参阅了解默认 代理配置 中的"默认消息地址设置"部分。使用
moveMessages ()方法将消息从一个队列移动到另一个队列。- 列出和删除消息
使用
listMessages ()方法,列出来自队列的消息。它将返回一个Map数组,每个消息一个映射。使用
removeMessages ()方法从队列中删除消息,它返回单个消息 ID 变体的布尔值或过滤器变体删除的消息数量。此方法采用过滤器参数来仅删除过滤后的消息。将过滤器设置为空字符串将生效,以删除所有消息。- 计算消息
-
队列中的消息数量由
getMessageCount ()方法返回。或者,countMessages ()将返回与给定过滤器匹配的队列中的消息数量。 - 更改消息优先级
-
可以使用
changeMessagesPriority ()方法更改消息优先级,该方法为单个消息 ID 变体返回布尔值,或者过滤器变体的更新消息数量。 - 消息计数器
-
可以使用
listMessageCounter ()和listMessageCounterHistory ()方法为队列列出消息计数器(请参阅 第 6.6 节 “使用消息计数器”)。还可以使用resetMessageCounter ()方法为单个队列重置消息计数器。 - 检索队列属性
-
QueueControl通过其属性(例如getFilter ())公开队列设置(例如,如果队列是使用一创建,则检索队列的过滤器,如果是 Durable()),以了解队列是否持久等。 - 暂停和恢复队列
-
QueueControl可以暂停并恢复底层队列。当队列暂停时,它将接收消息,但不会发送消息。恢复后,它将开始提供排队的消息(若有)。
6.4.4. 远程资源管理操作 复制链接链接已复制到粘贴板!
您可以使用管理 API 启动和停止代理的远程资源(acceptors、diverts 和 bridge 等),以便在不需要完全停止的情况下在给定时间段内离线代理。
- acceptors
-
使用
start ()或.AcceptorControl类上的stop ()方法(带有ObjectNameorg.apache.activemq.artemis:broker=" <broker-name> ",component=acceptors,name=" <acceptor-name>"或资源名称acceptor. <address-name>)。可以使用AcceptorControl属性来检索 acceptor 参数。有关 Acceptors 的更多信息,请参阅 Network Connections: Acceptors 和 Connectors。 - diverts
-
在
DivertControl类中使用start ()或stop ()方法启动或停止 divert (使用ObjectNameorg.apache.activemq.artemis:broker=" <broker-name> ",component=diverts,name=" <divert-name> "或资源名称divert. <divert-name>)。可使用DivertControl属性检索 divert 参数。 - 网桥
-
使用
start ()(resp)启动或停止网桥。BridgeControl类上的stop ()方法(带有ObjectNameorg.apache.activemq.artemis:broker=" <broker-name> ",component=bridge,name=" <bridge-name>"或资源名称bridge. <bridge-name>)。可以使用BridgeControl属性检索网桥参数。 - 广播组
-
在
BroadcastGroupControl类中使用start ()或stop ()方法启动或停止广播组(使用ObjectNameorg.apache.activemq.artemis:broker=" <broker-name> ",component=broadcast-group,name=" <broadcast-group-name> "或资源名称broadcastgroup. <broadcast-group-name>)。广播组参数可以使用BroadcastGroupControl属性来检索。如需更多信息,请参阅 Broker 发现方法。 - 发现组
-
在
DiscoveryGroupControl类中使用start ()或stop ()方法启动或停止发现组(使用ObjectNameorg.apache.activemq.artemis:broker=" <broker-name> ",component=discovery-group,name=" <discovery-group-name> "或资源名称 discovery. <discovery-group-name>)。发现组参数可以使用DiscoveryGroupControl属性来检索。如需更多信息,请参阅 Broker 发现方法。 - 集群连接
-
使用
ClusterConnectionControl类上的start ()或stop ()方法启动或停止集群连接(使用ObjectNameorg.apache.activemq.artemis:broker=" <broker-name> ",component=cluster-connection,name=" <cluster-connection-name> "或资源名称clusterconnection. <cluster-connection-name>)。集群连接参数可以使用ClusterConnectionControl属性来检索。如需更多信息,请参阅 创建代理集群。
6.5. 管理通知 复制链接链接已复制到粘贴板!
以下是所有不同类型的通知以及哪些标头位于消息的列表。每个通知都有一个 _AMQ_NotifType (括号中记录的值)和 _AMQ_NotifTimestamp 标头。时间戳是调用 java.lang.System.currentTimeMillis () 的未格式化的结果。
| 通知类型 | Headers |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
6.6. 使用消息计数器 复制链接链接已复制到粘贴板!
您可以使用消息计数器来随着时间的推移获取有关队列的信息。这有助于您识别那些很难查看的趋势。
例如,您可以使用消息计数器来确定如何随着时间的推移使用特定队列。您还可以尝试通过管理 API 以固定间隔查询队列中的消息数量,但这不会显示队列实际使用的方式。队列中的消息数量可以保持恒定,因为没有客户端正在发送或接收消息,或者因为发送到队列的消息数量等于从该队列使用的消息数量。在这两种情况下,队列中的消息数量保持不变,即使它以非常不同的方式使用。
6.6.1. 消息计数器类型 复制链接链接已复制到粘贴板!
消息计数器提供有关代理中队列的附加信息。
数量- 在代理启动后添加到队列中的消息总数。
countDelta- 自上次消息计数器更新以来添加到队列中的消息数量。
lastAckTimestamp- 最后一次确认来自队列的消息的时间戳。
lastAddTimestamp- 将消息添加到队列中最后一次时间的时间戳。
messageCount- 队列中的当前消息数。
messageCountDelta-
自上次消息计数器更新以来,从队列添加/删除的消息总数。例如,如果
messageCountDelta为-10,则总计 10 个消息已从队列中删除。 udpateTimestamp- 最后一条消息计数器更新的时间戳。
您还可以组合消息计数器来确定其他有意义的数据。例如,若要知道自上次更新以来从队列使用多少个消息,您可以从 countDelta 中减去 messageCountDelta。
6.6.2. 启用消息计数器 复制链接链接已复制到粘贴板!
消息计数器可能会对代理的内存有小的影响,因此默认禁用它们。要使用消息计数器,您必须首先启用它们。
流程
-
打开 &
lt;broker_instance_dir> /etc/broker.xml配置文件。 启用消息计数器。
<message-counter-enabled>true</message-counter-enabled>
<message-counter-enabled>true</message-counter-enabled>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置消息计数器历史记录和抽样周期。
<message-counter-max-day-history>7</message-counter-max-day-history> <message-counter-sample-period>60000</message-counter-sample-period>
<message-counter-max-day-history>7</message-counter-max-day-history> <message-counter-sample-period>60000</message-counter-sample-period>Copy to Clipboard Copied! Toggle word wrap Toggle overflow message-counter-max-day-history- 代理应存储队列指标的天数。默认值为 10 天。
message-counter-sample-period- 代理应抽样其队列以收集指标的频率(以毫秒为单位)。默认值为 10000 毫秒。
6.6.3. 检索消息计数器 复制链接链接已复制到粘贴板!
您可以使用管理 API 来检索消息计数器。
先决条件
代理上必须启用消息计数器。
更多信息请参阅 第 6.6.2 节 “启用消息计数器”。
流程
使用管理 API 检索消息计数器。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其他资源
- 有关消息计数器的更多信息,请参阅 第 6.4.3 节 “队列管理操作”。
第 7 章 监控有问题的代理 复制链接链接已复制到粘贴板!
AMQ Broker 包括一个称为 Critical Analyzer 的内部工具,它主动监控运行的代理,如死锁条件。在生产环境中,死锁状况等问题可能是 IO 错误、缺陷磁盘、内存短缺或由其他进程导致的 CPU 用量。
Critical 分析器定期测量关键操作的响应时间,如队列发送(即,将消息添加到代理中的队列)和日志操作。如果检查操作的响应时间超过可配置的超时值,代理将被视为不稳定。在这种情况下,您可以将 Critical Analyzer 配置为只记录消息或采取措施来保护代理,如关闭代理或停止运行代理的虚拟机(VM)。
7.1. 配置关键分析器 复制链接链接已复制到粘贴板!
以下步骤演示了如何配置 Critical Analyzer 以监控代理中的问题。
流程
打开 &
lt;broker_instance_dir> /etc/broker.xml配置文件。Critical Analyzer 的默认配置如下所示。
<critical-analyzer>true</critical-analyzer> <critical-analyzer-timeout>120000</critical-analyzer-timeout> <critical-analyzer-check-period>60000</critical-analyzer-check-period> <critical-analyzer-policy>HALT</critical-analyzer-policy>
<critical-analyzer>true</critical-analyzer> <critical-analyzer-timeout>120000</critical-analyzer-timeout> <critical-analyzer-check-period>60000</critical-analyzer-check-period> <critical-analyzer-policy>HALT</critical-analyzer-policy>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 指定参数值,如下所述。
critical-analyzer-
指定是否启用或禁用 Critical Analyzer 工具。默认值为
true,这意味着工具已启用。 critical-analyzer-timeout- Critical Analyzer 运行检查的超时时间(以毫秒为单位)。如果其中一个检查操作的时间超过这个值,则代理被视为不稳定。
critical-analyzer-check-period- 每个操作连续检查之间的时间段(以毫秒为单位)。
critical-analyzer-policy-
如果代理失败检查并被视为不稳定,则此参数指定代理是否记录消息(
LOG),停止托管代理(HALT)的虚拟机(HALT)或关闭代理(SHUTDOWN)。
根据您配置的策略选项,如果关键操作的响应时间超过配置的超时值,您会看到类似如下的输出:
critical-analyzer-policy=LOG
[Artemis Critical Analyzer] 18:11:52,145 ERROR [org.apache.activemq.artemis.core.server] AMQ224081: The component org.apache.activemq.artemis.tests.integration.critical.CriticalSimpleTest$2@5af97850 is not responsive
[Artemis Critical Analyzer] 18:11:52,145 ERROR [org.apache.activemq.artemis.core.server] AMQ224081: The component org.apache.activemq.artemis.tests.integration.critical.CriticalSimpleTest$2@5af97850 is not responsive
critical-analyzer-policy=HALT
[Artemis Critical Analyzer] 18:10:00,831 ERROR [org.apache.activemq.artemis.core.server] AMQ224079: The process for the virtual machine will be killed, as component org.apache.activemq.artemis.tests.integration.critical.CriticalSimpleTest$2@5af97850 is not responsive
[Artemis Critical Analyzer] 18:10:00,831 ERROR [org.apache.activemq.artemis.core.server] AMQ224079: The process for the virtual machine will be killed, as component org.apache.activemq.artemis.tests.integration.critical.CriticalSimpleTest$2@5af97850 is not responsive
critical-analyzer-policy=SHUTDOWN
[Artemis Critical Analyzer] 18:07:53,475 ERROR [org.apache.activemq.artemis.core.server] AMQ224080: The server process will now be stopped, as component org.apache.activemq.artemis.tests.integration.critical.CriticalSimpleTest$2@5af97850 is not responsive
[Artemis Critical Analyzer] 18:07:53,475 ERROR [org.apache.activemq.artemis.core.server] AMQ224080: The server process will now be stopped, as component org.apache.activemq.artemis.tests.integration.critical.CriticalSimpleTest$2@5af97850 is not responsive
您还可以在代理上看到类似以下内容的线程转储:
[Artemis Critical Analyzer] 18:10:00,836 ERROR [org.apache.activemq.artemis.core.server] AMQ222199: Thread dump: AMQ119001: Generating thread dump * =============================================================================== AMQ119002: Thread Thread[Thread-1 (ActiveMQ-scheduled-threads),5,main] name = Thread-1 (ActiveMQ-scheduled-threads) id = 19 group = java.lang.ThreadGroup[name=main,maxpri=10] sun.misc.Unsafe.park(Native Method) java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088) java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809) java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) java.lang.Thread.run(Thread.java:745) =============================================================================== ..... .......... =============================================================================== AMQ119003: End Thread dump *
[Artemis Critical Analyzer] 18:10:00,836 ERROR [org.apache.activemq.artemis.core.server] AMQ222199: Thread dump: AMQ119001: Generating thread dump
* =============================================================================== AMQ119002: Thread Thread[Thread-1 (ActiveMQ-scheduled-threads),5,main] name = Thread-1 (ActiveMQ-scheduled-threads) id = 19 group = java.lang.ThreadGroup[name=main,maxpri=10] sun.misc.Unsafe.park(Native Method) java.util.concurrent.locks.LockSupport.park(LockSupport.java:175) java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039) java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1088) java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809) java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) java.lang.Thread.run(Thread.java:745) =============================================================================== ..... .......... =============================================================================== AMQ119003: End Thread dump *
更新于 2025-05-14