2.9. 将代理实例从 7.9.x 升级到 7.10.x
以下小节介绍了如何将 7.9.x 代理实例升级到 7.10.x,用于不同的操作系统。
从 AMQ Broker 7.1.0 开始,默认只能从本地主机访问 AMQ 管理控制台。要了解配置对控制台的远程访问的信息,请参阅配置本地和远程访问 AMQ 管理控制台。
2.9.1. 在 Linux 上从 7.9.x 升级到 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 之前,您必须丢弃节点管理器表,即将其从数据库中删除。在丢弃表后,在重启升级的代理时,会使用新的模式重新创建它。在共享存储高可用性(HA)配置中,节点管理器表在代理间共享。因此,您必须确保在丢弃表前停止共享表的所有代理。以下示例丢弃名为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
将存档移到 AMQ Broker 原始安装过程中创建的目录中。以下示例使用
/opt/redhat
。sudo mv amq-broker-7.x.x-bin.zip /opt/redhat
作为目录所有者,提取压缩的存档的内容。在以下示例中,用户
amq-broker
使用unzip
命令提取存档。su - amq-broker cd /opt/redhat unzip amq-broker-7.x.x-bin.zip
如果代理正在运行,请停止它。
<broker_instance_dir>/bin/artemis stop
通过将代理实例目录复制到当前用户的主目录来备份代理实例目录。
cp -r <broker_instance_dir> ~/
(可选)请注意代理的当前版本。代理停止后,您可以在 <
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]
编辑 &
lt;broker_instance_dir> /etc/artemis.profile
配置文件。将
ARTEMIS_HOME
属性设置为提取存档时所创建的新目录。例如:ARTEMIS_HOME='/opt/redhat/amq-broker-7.x.x-bin'
编辑 &
lt;broker_instance_dir> /etc/bootstrap.xml
配置文件。在
web
元素中,更新 AMQ 管理控制台中 7.10.x 中 AMQ 管理控制台所需的.war
文件的名称。<web path="web"> <binding uri="https://localhost:8161" ... <app url="console" war="hawtio.war"/> ... </web>
在
broker xmlns
元素中,将 schema 值从"http://activemq.org/schema"
改为"http://activemq.apache.org/schema"
。<broker xmlns="http://activemq.apache.org/schema">
编辑 &
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">
启动升级的代理。
<broker_instance_dir>/bin/artemis run
(可选)确认代理正在运行,并且版本已更改。启动代理后,打开 <
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]
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录以外的位置。在 &
lt;broker_instance_dir> /etc/artemis.profile
文件中,通过在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI
属性。在以前的版本中,这些配置文件和数据只能存储在代理实例目录中的etc/
和data/
目录中。
2.9.2. 在 Windows 上从 7.9.x 升级到 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 之前,您必须丢弃节点管理器表,即将其从数据库中删除。在丢弃表后,在重启升级的代理时,会使用新的模式重新创建它。在共享存储高可用性(HA)配置中,节点管理器表在代理间共享。因此,您必须确保在丢弃表前停止共享表的所有代理。以下示例丢弃名为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>
文件夹,然后选择 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
编辑 &
lt;broker_instance_dir> \etc\artemis.profile.cmd
和<broker_instance_dir> \bin\artemis-service.xml
配置文件。将ARTEMIS_HOME
属性设置为提取存档时所创建的新目录。ARTEMIS_HOME=
<install_dir>
编辑 &
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
编辑 &
lt;broker_instance_dir> \bin\artemis-service.xml
配置文件。确保 bootstrap 类 path 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>
编辑 &
lt;broker_instance_dir> \etc\bootstrap.xml
配置文件。在
web
元素中,更新 AMQ 管理控制台中 7.10.x 中 AMQ 管理控制台所需的.war
文件的名称。<web path="web"> <binding uri="https://localhost:8161" ... <app url="console" war="hawtio.war"/> ... </web>
在
broker xmlns
元素中,将 schema 值从"http://activemq.org/schema"
改为"http://activemq.apache.org/schema"
。<broker xmlns="http://activemq.apache.org/schema">
编辑 &
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">
启动升级的代理。
<broker_instance_dir>\bin\artemis-service.exe start
(可选)确认代理正在运行,并且版本已更改。启动代理后,打开 <
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]
其它资源
- 有关创建代理实例的更多信息,请参阅创建代理实例。
-
现在,您可以将代理实例的配置文件和数据存储在任何自定义目录中,包括代理实例目录以外的位置。在 &
lt;broker_instance_dir> \etc\artemis.profile
文件中,通过在创建代理实例后指定自定义目录的位置来更新ARTEMIS_INSTANCE_ETC_URI
属性。在以前的版本中,这些配置文件和数据只能存储在代理实例目录中的\etc
和\data
目录中。