4.8.3. 在缩减时迁移信息


要在缩减代理部署时迁移消息,请使用主代理自定义资源(CR)启用消息迁移。在缩减集群代理部署时,AMQ Broker Operator 会自动运行专用的扩展控制器来执行消息迁移。

启用消息迁移后,Operator 中的扩展控制器检测到代理 Pod 关闭,并启动 drainer Pod 以执行消息迁移。drainer Pod 连接到集群中的其他实时代理 Pod 之一,并将消息迁移到该 live 代理 Pod。迁移完成后,缩减控制器将关闭。

注意
  • 缩减控制器只在单一 OpenShift 项目中运行。控制器无法在单独的项目中的代理之间迁移消息。
  • 如果您将代理部署缩减为 0(零),则不会发生消息迁移信息,因为没有正在运行的代理 Pod 可以迁移到消息传递数据。但是,如果您将部署缩减到零代理,然后备份到原始部署中的一些代理,则会为继续关闭的代理启动排空 Pod。

以下示例显示了扩展控制器的行为。

先决条件

步骤

  1. 在最初下载并提取的 Operator 存储库的 deploy/crs 目录中,打开主代理 CR,broker_activemqartemis_cr.yaml
  2. 在主代理 CR 中,将 messageMigrationpersistenceEnabled 设置为 true

    这些设置意味着,当稍后缩减集群代理部署的大小时,Operator 会自动启动扩展控制器,并将信息迁移到仍在运行的代理 Pod 中。

  3. 在现有的代理部署中,验证哪些 Pod 正在运行。

    $ oc get pods

    您会看到类似如下的输出。

    activemq-artemis-operator-8566d9bf58-9g25l   1/1   Running   0   3m38s
    ex-aao-ss-0                                  1/1   Running   0   112s
    ex-aao-ss-1                                  1/1   Running   0   8s

    前面的输出显示,有三个 Pod 正在运行:一个用于代理 Operator 本身,以及部署中每个代理的独立 Pod。

  4. 登录到每个 Pod,并将一些信息发送到每个代理。

    1. Pod ex-ao-ss-0 有集群 IP 地址 172.17.0.6,运行以下命令:

      $ /opt/amq-broker/bin/artemis producer --url tcp://172.17.0.6:61616 --user admin --password admin
    2. Pod ex-aao-ss-1 具有 172.17.0.7 的集群 IP 地址,运行以下命令:

      $ /opt/amq-broker/bin/artemis producer --url tcp://172.17.0.7:61616 --user admin --password admin

      前面的命令在每个代理上创建一个名为 TEST 的队列,并将 1000 个消息添加到每个队列。

  5. 将集群从两个代理缩减到一。

    1. 打开主代理 CR,broker_activemqartemis_cr.yaml
    2. 在 CR 中,将 deploymentPlan.size 设置为 1
    3. 在命令行中应用更改:

      $ oc apply -f deploy/crs/broker_activemqartemis_cr.yaml

      您会看到 Pod ex-ao-ss-1 开始关闭。扩展控制器启动相同名称的新排空器 Pod。这个 drainer Pod 还会在将代理 Pod ex-ao-ss-1 的所有消息迁移到集群中的其他代理 Pod 后关闭,即 ex-aao-ss-0

  6. 关闭 drainer Pod 时,检查代理 Pod ex-aao-ss-0 上测试队列的消息数。您会看到队列中的消息数量为 2000,这表示排空 Pod 成功从关闭的代理 Pod 中迁移了 1000 信息。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

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

让开源更具包容性

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

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部