搜索

第 8 章 已知问题

download PDF

本节论述了 AMQ Broker 7.11 中已知的问题。

  • ENTMQBR-8106 - 在更改 CR 中的 MessageMigration 后 AMQ Broker Drainer pod 无法正常工作

    您无法更改正在运行的代理部署中 messageMigration 属性的值。要临时解决这个问题,您必须在新的 ActiveMQ Artemis CR 中为 messageMigration 属性设置所需的值,并创建新的代理部署。

  • ENTMQBR-8166 - 带有 UseClientAuth=true 的自签名证书可防止与 Jolokia 的 Operator 通信

    如果在 ActiveMQ Artemis CR 的 console 部分中将 useClientAuth 属性设置为 true,Operator 无法在代理上配置某些功能,如创建地址。在 Operator 日志中,您会看到以 remote error: tls: bad certificate 结尾的错误消息。

  • ENTMQBR-7385 - 缓慢消费者上的联邦队列的消息 flops

    如果本地应用程序消费者非常慢或无法消耗消息,可以在应用程序消费者最终消耗前多次发送一条消息,并在联邦连接中发送大量信息。

  • ENTMQBR-7820 - [Operator] supported version in 7.11.0 OPR1 operator 日志不正确

    Operator 日志列出对以下 AMQ Broker 镜像版本的支持: 7.10.0 7.10.1 7.10.2 7.11.0 7.8.1 7.8.2 7.8.3 7.9.0 7.9.1 7.9.2 7.9.3 7.9.4。从 7.10.0 开始,Operator 实际上支持 AMQ Broker 镜像版本。

  • ENTMQBR-7359 - 使用 7.10.0 Operator 更改为当前处理凭证 secret

    Operator 在 secret 中存储用于连接代理的管理员用户名和密码。默认 secret 名称的格式是 < custom-resource-name>-credentials-secret。您可以手动创建 secret,或允许 Operator 创建 secret。

    如果在 7.10.0 之前在自定义资源中配置 adminUseradminPassword 属性,Operator 会使用这些属性的值更新手动创建的 secret。从 7.10.0 开始,Operator 不再更新手动创建的 secret。因此,如果更改了 CR 中的 adminUseradminPassword 属性的值,则必须:

  • 使用新用户名和密码更新 secret
  • 删除 secret,并允许 Operator 创建 secret。当 Operator 创建 secret 时,如果在 CR 中指定,它会添加 adminUseradminPassword 属性的值。如果这些属性不在 CR 中,Operator 会为 secret 生成随机凭证。
  • ENTMQBR-7111 - 7.10 版本的 operator 会在升级过程中删除 StatefulSet

    如果您要升级到 AMQ Broker Operator 7.10.0,新的 Operator 会在协调过程中自动删除每个部署的现有 StatefulSet。当 Operator 删除 StatefulSet 时,现有代理 pod 会被删除,这会导致临时代理中断。

    您可以运行以下命令来手动删除 StatefulSet 并孤立正在运行的 pod,然后删除 StatefulSet: oc delete statefulset < statefulset-name& gt; --cascade=orphan

    在升级过程中手动删除 StatefulSet 可让新 Operator 在不删除正在运行的 pod 的情况下协调 StatefulSet。如需更多信息,请参阅在 OpenShift 上部署 AMQ Broker 中的 使用 OperatorHub 升级 Operator

  • ENTMQBR-6473 - 由于模式 URL 更改而不兼容的配置

    当您尝试使用之前版本 7.9 或 7.10 实例的代理实例时,不兼容的配置会导致代理崩溃。要临时解决这个问题,请更新相关配置文件中的模式 URL,如在 Linux 上从 7.9.0 升级到 7.10.0 所述

  • ENTMQBR-4813 AsynchronousCloseException 带有大型消息和多个 C++ 订阅者

    如果多个使用 AMQP 协议的客户端与订阅者和代理在同一台主机上运行,并且发布者发送大型消息,其中一个订阅者会崩溃。

  • ENTMQBR-5749 - 删除 OperatorHub 中不支持的 operator

    仅支持 从 OperatorHub 部署 Operator 中的 Operator 和 Operator 频道。出于与 Operator 出版物相关的技术原因,其他 Operator 和频道在 OperatorHub 中可见,并应该被忽略。对于参考,以下列表显示了哪些 Operator 是可见的,但不被支持:

    • Red Hat Integration - AMQ Broker LTS - 所有频道
    • Red Hat Integration - AMQ Broker - alpha、current 和 current-76
  • ENTMQBR-569 - 将 ID 从 OpenWire 转换为 AMQP 会导致将 ID 作为二进制发送

    当从 A-MQ 6 OpenWire 客户端通信到 AMQP 客户端时,在应用程序消息属性中编码其他信息。这是代理内部使用的信息,可以被忽略。

  • ENTMQBR-655 - [AMQP] Unable to send message when populate-validated-user

    配置选项 populate-validated-user 不支持使用 AMQP 协议生成的消息。

  • ENTMQBR-1875 - [AMQ 7, ha, replicated store] 备份代理在 - ActiveMQIllegalStateException errorType=ILLEGAL_STATE message=AMQ119026: Backup Server 尚未与 live 同步后无法进入"实时"或关闭

    当备份代理试图与主代理同步时,删除主代理的分页磁盘会导致主代理失败。另外,备份代理无法变为 live,因为它继续尝试与主代理同步。

  • ENTMQBR-2068 - 有些在 HA 故障切换过程中收到但未发送的消息,故障切换场景

    目前,如果在 OpenWire 客户端发送消息时代理切换到其备份,则当故障转移丢失时发送到代理的消息。要临时解决这个问题,请确保代理在确认信息前保留信息。

  • ENTMQBR-3331 - Stateful set controller 无法从 CreateContainerError 恢复,阻止 Operator

    如果 AMQ Broker Operator 从具有配置错误的自定义资源(CR)创建一个有状态的集合,有状态集控制器在错误解决时无法推出更新的有状态集。

    例如,主代理 CR 中的 image 属性的值出现错误,从而导致有状态集合控制器创建的第一个 Pod 的状态保持 Pending。如果修复错误,并应用 CR 更改,AMQ Broker Operator 会更新有状态的集合。但是,Kubernetes 已知问题可防止有状态的集合控制器推出更新的有状态集。控制器无限期等待具有 Pending 状态的 Pod 变为 Ready,因此不会部署新的 Pod。

    要临时解决这个问题,您必须删除具有 Pending 状态的 Pod,以允许有状态集控制器部署新 Pod。要检查哪些 Pod 具有 Pending 状态,请使用以下命令: oc get pods --field-selector=status.phase=Pending。要删除 Pod,请使用 oc delete pod <pod name> 命令。

  • ENTMQBR-3846 - mq 客户端不会在代理重启时重新连接

    当您重启代理或代理失败时,活跃代理不会恢复之前连接的 MQTT 客户端的连接。要临时解决这个问题,要重新连接 mq 客户端,您需要在客户端上手动调用 subscribe () 方法。

  • ENTMQBR-4127 - AMQ Broker Operator: Operator 生成的路由名称可能太长用于 OpenShift

    对于基于 Operator 的部署中的每个代理 Pod,Operator 创建用于访问 AMQ Broker 管理控制台的路由名称包括自定义资源(CR)实例的名称、OpenShift 项目的名称和 OpenShift 集群的名称。例如,my-broker-deployment-wconsj-0-svc-rte-my-openshift-project.my-openshift-domain。如果其中一些名称长,则默认路由名称可能会超过 OpenShift 强制的 63 个字符的限制。在本例中,在 OpenShift Container Platform Web 控制台中,Route 会显示 Rejected 状态。

    要临时解决这个问题,请使用 OpenShift Container Platform Web 控制台手动编辑 Route 的名称。在控制台中,点 Route。在右上角的 Actions 下拉菜单中选择 Edit Route。在 YAML 编辑器中,找到 spec.host 属性并编辑值。

  • ENTMQBR-4140 - AMQ Broker Operator: 如果 storage.size 未指定,则安装将不可用

    如果您将自定义资源(CR)实例的 storage.size 属性配置为指定持久性存储部署中代理所需的持久性卷声明(PVC)的大小,如果没有正确指定这个值,Operator 安装将不可用。例如,假设您将 storage.size 的值设置为 1 ( 即,不指定单位)。在这种情况下,Operator 无法使用 CR 创建代理部署。另外,即使您删除了 CR 并部署正确指定的 storage.size 的新版本,Operator 仍然无法使用此 CR 创建部署。

    要临时解决这个问题,首先停止 Operator。在 OpenShift Container Platform Web 控制台中点 Deployments。对于与 AMQ Broker Operator 对应的 Pod,点 More options 菜单(三个垂直点)。单击 Edit Pod Count,并将值设为 0。当 Operator Pod 停止后,创建正确指定了 storage.size 的 CR 的新版本。然后,要重启 Operator,请再次点 Edit Pod Count,并将值设为 1

  • ENTMQBR-4141 - AMQ Broker Operator: Increasing Persistent Volume size 需要手动参与,即使重新创建 Stateful Set

    如果您尝试在为持久性存储的部署中增加代理所需的持久性卷声明(PVC)的大小,则更改不会在进行进一步的手动步骤的情况下生效。例如,假设您配置自定义资源(CR)实例的 storage.size 属性,以便为 PVC 指定初始大小。如果您修改 CR 以指定 storage.size 的不同值,现有代理将继续使用原始 PVC 大小。即使将部署缩减为零代理,然后备份到原始数字,也是如此。但是,如果您扩展部署的大小以添加额外的代理,新代理将使用新的 PVC 大小。

    要临时解决这个问题,并确保部署中的所有代理都使用相同的 PVC 大小,请使用 OpenShift Container Platform Web 控制台扩展部署使用的 PVC 大小。在控制台中,点 Storage Persistent Volume Claims。点您的部署。在右上角的 Actions 下拉菜单中,选择 Expand PVC 并输入新值。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.