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

流程

  1. 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档 中的说明进行操作。
  2. 将存档的所有者更改为拥有 AMQ Broker 安装的同一用户。以下示例显示了名为 amq-broker 的用户。

    sudo chown amq-broker:amq-broker amq-broker-7.x.x-bin.zip
  3. 将存档移到 AMQ Broker 原始安装过程中创建的目录中。以下示例使用 /opt/redhat

    sudo mv amq-broker-7.x.x-bin.zip /opt/redhat
  4. 作为目录所有者,提取压缩的存档的内容。在以下示例中,用户 amq-broker 使用 unzip 命令提取存档。

    su - amq-broker
    cd /opt/redhat
    unzip amq-broker-7.x.x-bin.zip
  5. 如果代理正在运行,请停止它。

    <broker_instance_dir>/bin/artemis stop
  6. 通过将代理实例目录复制到当前用户的主目录来备份代理实例目录。

    cp -r <broker_instance_dir> ~/
  7. (可选)请注意代理的当前版本。代理停止后,您可以在 < 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]
  8. 编辑 & lt;broker_instance_dir&gt; /etc/artemis.profile 配置文件。

    1. ARTEMIS_HOME 属性设置为提取存档时所创建的新目录。例如:

      ARTEMIS_HOME='/opt/redhat/amq-broker-7.x.x-bin'
  9. 编辑 & lt;broker_instance_dir&gt; /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">
  10. 编辑 & lt;broker_instance_dir&gt; /etc/management.xml 文件。

    management-context xmlns 元素中,将 schema 值从 "http://activemq.org/schema" 改为 "http://activemq.apache.org/schema"

    <management-context xmlns="http://activemq.apache.org/schema">
  11. 启动升级的代理。

    <broker_instance_dir>/bin/artemis run
  12. (可选)确认代理正在运行,并且版本已更改。启动代理后,打开 < 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

流程

  1. 从红帽客户门户下载所需的存档。按照 下载 AMQ Broker 归档 中的说明进行操作。
  2. 使用文件管理器将存档移到您在上次安装 AMQ Broker 时创建的文件夹。
  3. 提取存档的内容。右键单击 .zip 文件并选择 Extract All
  4. 如果代理正在运行,请停止它。

    <broker_instance_dir>\bin\artemis-service.exe stop
  5. 使用文件管理器备份代理。

    1. 右键单击 < broker_instance_dir> 文件夹,然后选择 Copy
    2. 在同一窗口中右键单击并选择 粘贴
  6. (可选)请注意代理的当前版本。代理停止后,您可以在 < 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
  7. 编辑 & lt;broker_instance_dir&gt; \etc\artemis.profile.cmd<broker_instance_dir> \bin\artemis-service.xml 配置文件。将 ARTEMIS_HOME 属性设置为提取存档时所创建的新目录。

    ARTEMIS_HOME=<install_dir>
  8. 编辑 & lt;broker_instance_dir&gt; \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
  9. 编辑 & lt;broker_instance_dir&gt; \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>
  10. 编辑 & lt;broker_instance_dir&gt; \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">
  11. 编辑 & lt;broker_instance_dir&gt; /etc/management.xml 文件。

    management-context xmlns 元素中,将 schema 值从 "http://activemq.org/schema" 改为 "http://activemq.apache.org/schema"

    <management-context xmlns="http://activemq.apache.org/schema">
  12. 启动升级的代理。

    <broker_instance_dir>\bin\artemis-service.exe start
  13. (可选)确认代理正在运行,并且版本已更改。启动代理后,打开 < 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 目录中。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.