Red Hat AMQ Broker 7.13 发行注记
使开源包含更多 复制链接链接已复制到粘贴板!
红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息。
第 1 章 AMQ Broker 7.13 的长期支持 复制链接链接已复制到粘贴板!
AMQ Broker 7.13 被指定为 Long Term Support (LTS)版本。有关 LTS 版本条款的详情,请参阅 AMQ LTS 版本如何被支持?
支持 Red Hat Enterprise Linux 和 OpenShift Container Platform
AMQ Broker 7.13 LTS 版本支持:
- Red Hat Enterprise Linux 8 和 9
- OpenShift Container Platform 4.16, 4.17, 4.18, 4.19 和 4.20
- Microsoft Windows Server 2019、2022 和 2025
红帽努力确保 AMQ Broker 保持与将来的 OpenShift Container Platform 版本兼容,但无法保证这个兼容性。每个新的 OpenShift Container Platform 版本都会执行互操作性测试。如果没有找到兼容性问题,新的 OpenShift Container Platform 版本会添加到 Red Hat AMQ Broker 7 支持的配置 中。
第 2 章 支持的配置 复制链接链接已复制到粘贴板!
有关支持的配置的详情,请参考 Red Hat AMQ Broker 7 支持的配置。
- 支持的 Java 版本
- AMQ Broker 7.13 支持 Java 17 和 Java 21。
- OpenWire 支持
- AMQ 7 Broker 从 2017 年发布后对 Openwire 协议提供支持,作为将客户端应用程序迁移到 AMQ 7 的方法。在 2021 年发布 AMQ Broker 7.9.0 后,Openwire 协议已被弃用,建议客户将其现有的 Openwire 客户端应用程序迁移到 AMQ 7 完全支持的协议之一(CORE、AMQP、MQTT 或 STOMP)。 从 AMQ Broker 8.0 版本开始,Openwire 协议将从 AMQ Broker 中删除。
第 3 章 新的和更改的功能 复制链接链接已复制到粘贴板!
这部分论述了 AMQ Broker 7.13 中突出显示的增强和更改的功能。有关功能增强的完整列表,请参阅 AMQ Broker 7.13.0 增强
- FIPS 容错
- AMQ Broker 7.13 是 FIPS-tolerant,这意味着它在启用了 FIPS 的 OpenShift 集群或 RHEL 系统上自动运行。一个注意事项是,代理无法使用默认的 codec org.apache.activemq.artemis.utils.DefaultSensitiveStringCodec 对密码进行编码。默认 codec 使用 Blowfish 算法,它不是 FIPS 容错的。Blowfish 算法在 7.13 中已弃用。如需更多信息,请参阅 在 OpenShift 上部署 AMQ Broker 中的 禁用 FIPS 模式,请参阅配置 AMQ Broker 中的 禁用 FIPS 模式。
- 支持代理属性的 JSON 格式
-
在 7.13 中,您可以使用 JSON 格式配置代理属性。JSON 格式比编写属性的文本格式更紧凑,这意味着您可以在单个文件中添加更多属性,而无需超过属性文件的 1 MB 大小限制。如需更多信息,请参阅在 OpenShift 上部署 AMQ Broker 中的分离
代理Properties配置。 - 新的 AMQ 管理控制台
在 7.13 中,下一代基于 HawtIO 4 的 AMQ 管理控制台与 AMQ Broker 集成。前面的 HawtIO 2 控制台基于 Bootstrap 框架,该框架不再受到 Bootstrap 基础的支持。新控制台的亮点包括:
- 使用现代 Web 技术 React 和 Patternfly。
- 有一个更快、响应更快的 UI。
- 在表格视图和 JMX 视图之间提供干净的隔离。
- 支持通用 OpenID 身份验证。OpenID Connect Core 1.0 是用于分布式身份验证的广泛规格和标准方法(基于 OAuth 2)。
- 改进了过滤器的代理图
注意默认情况下,新的控制台节流身份验证以防止暴力攻击。因此,在登录到 web 控制台时,您可能会看到 429 会出现一个间歇性错误。如果要禁用节流身份验证:
-
在 RHEL 上的 AMQ Broker 上,将一个新的参数
-Dhawtio.authenticationThrottled=false添加到artemis.profile文件中的 Java 系统参数的JAVA_ARGS列表中。 -
在 OpenShift 上的 AMQ Broker 上,添加一个 Java 环境变量并指定值:
-Ddhawtio.authenticationThrottled=false。有关设置环境变量的更多信息,请参阅在 OpenShift 上部署 AMQ Broker 中的 为代理容器设置环境变量。
注意在 HawtIO 4 中,不支持
hawtio.role属性。因此,您必须使用hawtio.roles属性授予一个或多个对 AMQ 管理控制台的角色访问权限。- 基于百分比的全局内存限值
- 在以前的版本中,只能为所有地址设置全局内存限值作为绝对值。在 7.13 中,您可以将全局内存限值值设置为代理 JVM 可用最大内存的百分比。如需更多信息,请参阅 在 OpenShift 和 RHEL 上部署 AMQ Broker 中的 为代理配置最大 JVM 内存, 请参阅配置 AMQ Broker 中所有地址的分页限制。
- AMQ Broker Prometheus 插件公开的新指标
在 7.13 中,以下新指标由 AMQ Broker Prometheus 插件公开:
session_count:此服务器上的会话数。total_session_count:此服务器上创建的会话总数,自启动之后。artemis_limit_percent.特定地址使用的内存限值的百分比。
- Log4J2
JsonTemplateLayout支持 - 您可以将 Log4J 日志记录工具写入 JSON 模板布局的日志的默认布局。如需更多信息, 请参阅配置 AMQ Broker 中的配置日志。
- AMQ 核心协议 JMS 客户端重试参数
- 在 7.13 中,AMQ Core Protocol JMS 客户端将 retryIntervalMultiplier 和 maxRetryInterval 参数的值应用到初始连接尝试。在以前的版本中,客户端在重新连接尝试但未在初始连接尝试中使用这些参数。
- AMQP 客户端的消费者优先级支持
- AMQ Broker 7.13 允许您为 AMQ 客户端设置消费者优先级,如红帽构建的 Apache Qpid JMS。
- Red Hat Universal Base Image (UBI) 9 容器镜像
- OpenShift 容器镜像的 AMQ Broker 基于 Red Hat UBI 9 构建。基于 UBI 9 的代理容器镜像与 RHEL8 主机系统兼容。
- Operator 频道
OperatorHub 上提供了一个新的 Operator
Red Hat Integration - AMQ Broker for RHEL 9 (Multiarch)。此 Operator 的更新只在7.13.x频道中提供。7.13.x频道是一个 Long Term Support (LTS)频道。7.12.xLTS 频道为Red Hat Integration - AMQ Broker for RHEL 8 (Multiarch) Operator提供了更新。此频道仅用于版本 7.12。注意无法通过切换频道来升级 Operator。您必须卸载现有 Operator,并从适当的频道安装 Operator 的新版本。
要确定要选择哪个 Operator,请参阅 Red Hat Enterprise Linux Container Compatibility Matrix。
- 程序示例
- 在 AMQ Broker 7.13 中,示例程序没有发布并安装代理。相反,您可以访问以下软件仓库中的示例程序 :https://github.com/apache/activemq-artemis-examples。
第 4 章 弃用的功能 复制链接链接已复制到粘贴板!
本节论述了支持但已从 AMQ Broker 中弃用的功能。
- 默认 codec 的双向算法
-
从 7.13 开始,默认 codec 的双向算法
DefaultSensitiveStringCodec已被弃用。 ActiveMQArtemisAddressCRD-
从 7.12 开始,
ActiveMQArtemisAddressCRD 已被弃用。使用ActiveMQArtemisCR 中的spec.brokerProperties属性为您的部署创建地址和队列。 ActiveMQArtemisSecurityCRD-
从 7.12 开始,
ActiveMQArtemisSecurityCRD 已被弃用。使用ActiveMQArtemisCR 中的spec.brokerProperties属性来配置部署的安全性。 ActiveMQArtemisScaledownCRD-
从 7.12 开始,
ActiveMQArtemisScaledownCRD 已被弃用。ActiveMQArtemisScaledownCRD 由代理在内部使用,因此此更改对 AMQ Broker 管理员是透明的。 - LDAP 查询的连接池
-
从 7.12 开始,
connectionPool参数(为 LDAP 查询启用连接池)已弃用。内置授权和身份验证缓存提供了一种可优化 LDAP 查询性能的替代方法。有关自定义内置缓存的详情,请参考 配置身份验证和授权缓存。 - 自定义资源中的
升级属性 -
从 7.11 开始,
升级属性和关联的启用和次要属性已弃用,因为它们无法象最初设计一样工作。使用image或version属性来部署特定的代理容器镜像。 queues配置元素- 从 7.10 开始,<queues> 配置元素已弃用。您可以使用 <addresses> 配置元素来创建地址和关联的队列。<queues> 配置元素将在以后的版本中删除。
- getAddressesSettings method
- 从 7.10 开始,getAddressesSettings 方法(包括在 org.apache.activemq.artemis.core.config.Configuration 接口)已被弃用。使用 getAddressSettings 方法,以编程方式为代理配置地址和队列。
- OpenWire 协议
- 从 7.9 开始,OpenWire 协议是一个弃用的功能。如果您要创建新的基于 AMQ Broker 的系统,请使用其他支持的协议。从 8.0 版本开始,Openwire 协议将从 AMQ Broker 中删除。
- 在代理实例没有运行时添加用户
- 从 7.8 开始,当 AMQ Broker 实例没有运行时,从 CLI 接口将用户添加到代理的功能会被删除。
- 网络 pinger
- 从 7.5 开始,网络 ping 是一个已弃用的功能。网络 ping 无法保护代理集群不受出现无法恢复的消息丢失的网络隔离问题。这个功能将在以后的发行版本中被删除。红帽继续支持使用网络 ping 的现有 AMQ Broker 部署。但是,红帽不推荐在新部署中使用网络 ping。有关为高可用性配置代理集群的指南,并避免网络隔离问题,请参阅配置 AMQ Broker 中的 实施高可用性。
- Hawtio 分配控制台插件
-
从 7.3 开始,AMQ Broker 不再包含 Hawtio 分配控制台插件 assignment
-hawtio-console.war。在以前的版本中,分配控制台用于管理 AMQ Interconnect。但是,AMQ Interconnect 现在使用自己的独立 web 控制台。
第 5 章 开发预览 复制链接链接已复制到粘贴板!
提供了开发人员预览版本,以公开来自上游社区的功能,供早期采用者和集成商使用,以便在可能包含在红帽产品产品中之前与新功能进行交互。如需更多信息,请参阅 link Developer Preview Support Scope。
- restricted 模式
-
在 7.13 中,ActiveMQArtemis CR 支持一个新的属性
spec.Restricted。如果此属性设为True,则会部署一个空的嵌入式代理。您可以使用ActiveMQArtemisCR 中的brokerProperties属性来配置此代理。为保护代理端到端通信,代理需要一个公钥基础架构(PKI)。您可以使用 cert-manager 为 PKI 生成 TLS 证书。 - 自助置备插件
- 自助置备插件是 OpenShift 控制台的动态插件。该插件向 OpenShift 控制台添加新的代理工作负载类型,允许您在 OpenShift 中创建和管理代理部署。自助置备插件中包含 Jolokia API 服务器。API 服务器构建在自助置备插件 UI 中发出的请求,并将其发送到代理上的 Jolokia 端点。自助置备插件和 Jolokia API 服务器在 AMQ Broker 7.13 版本的 Software Downloads 页面中提供 :
您只能在运行 OpenShift 4.16 或更高版本的集群中安装自助置备插件。
完成以下步骤,在 OpenShift 集群上安装 Jolokia API 服务器和自助置备插件。
- 确保在集群中安装了 AMQ Broker Operator 和 cert-Manager Operator。
- 使用 OpenShift 命令行界面(CLI)登录您的 OpenShift 集群。
- 在网页浏览器中,导航到 AMQ Broker 7.13 版本的 Software Downloads 页面。
- 在 AMQ Broker 7.13.0 Jolokia API 服务器安装文件旁边,点 Download。
- 在 AMQ Broker 7.13.0 自助置备插件安装文件旁边,点 Download。
将下载的存档移至新目录。以下示例将存档移到名为 ~/broker/spp 的目录。
$ mkdir ~/broker/spp $ mv amq-broker-jolokia-api-server-7.13.0-install-rhel9.zip ~/broker/spp $ mv amq-broker-self-provisioning-plugin-7.13.0-install-rhel9.zip ~/broker/spp提取存档的内容。例如:
$ cd ~/broker/spp $ unzip amq-broker-jolokia-api-server-7.13.0-install-rhel9.zip $ unzip amq-broker-self-provisioning-plugin-7.13.0-install-rhel9.zip切换到提取 Jolokia API 服务器存档时创建的目录。
$ cd amq-broker-jolokia-api-server-7.13.0-install运行脚本来安装 Jolokia API 服务器:
// AsciiDocDITA.BlockTitle, warning, Block titles can only be assigned to examples, figures, and tables in DITA. ./deploy.sh切换到提取自置备插件存档时创建的目录。
$ cd ../amq-broker-self-provisioning-plugin-7.13.0-install运行脚本来安装自置备插件:
// AsciiDocDITA.BlockTitle, warning, Block titles can only be assigned to examples, figures, and tables in DITA. ./deploy-plugin.sh-
验证 Jolokia API 服务器的 pod 和自助置备插件是否在
activemq-artemis-jolokia-api-server和activemq-artemis-self-provisioning-plugin命名空间中运行。
有关如何尝试插件的详情,请参考 自助置备插件 readme 文件。
第 6 章 修复的问题 复制链接链接已复制到粘贴板!
有关版本中修复的问题的完整列表,请参阅 AMQ Broker 7.13.0 修复的问题,并查看 AMQ Broker - 7.13.x 解析 的问题列表以了解补丁版本中修复的问题列表。
第 7 章 修复了常见漏洞和风险 复制链接链接已复制到粘贴板!
本节详细介绍了 AMQ Broker 7.13 发行版本中修复的常见漏洞和暴露(CVE)。
- ENTMQBR-9545- CVE-2024-38819 org.springframework/spring-webmvc: 功能 Web 框架中的路径遍历漏洞 [amq-7]
- ENTMQBR-9496 - CVE-2024-8184 org.eclipse.jetty-server: Jetty ThreadLimitHandler.getRemote ()易受到远程 DoS 攻击 [amq-7]
- ENTMQBR-9445 - CVE-2024-38809 org.springframework/spring-web: Spring Framework DoS via conditional HTTP request [amq-7]
- ENTMQBR-958 1- CVE-2024-6763 org.eclipse.jetty-http: Jetty URI 解析无效颁发机构 [amq-7]
- ENTMQBR-95 39- CVE-2024-38828 org.springframework/spring-webmvc: DoS,使用 byte[] 参数 [amq-7]
- ENTMQBR-8648 - CVE-2020-23064 hawtio-core: jquery: cross-site scripting [amq-7]
- ENTMQBR-8887- CVE-2024-26308 commons-compress: OutOfMemoryError unpacking broken Pack200 file [amq-7]
- ENTMQBR-888 8- CVE-2024-25710 commons-compress: 因一个损坏的 DUMP 文件 [amq-7]
第 8 章 已知问题 复制链接链接已复制到粘贴板!
这部分论述了 AMQ Broker 7.13 中已知的问题。
ENTMQBR-9810- 使用 Java23 会导致不支持的OperationException: getSubject 只有在允许安全管理器时被支持
当您将 AMQ Broker 7.13 与 Java 23 搭配使用时,会显示以下错误:
只有在 java.base/javax.security.auth.Subject.getSubject (Subject.java.java:347)中允许安全管理器时,才支持 java.lang.UnsupportedOperationException: getSubject.要解决这个问题,请将新参数
-Djava.security.manager=allow添加至artemis.profile文件中的 Java 系统参数的JAVA_ARGS列表。这个参数启用对安全管理器的支持,而无需实际使用。
安装 dir 具有 unicode 字符时,控制台的 ENTMQBR-979 1- 启动控制台失败。
如果您重命名了默认目录(在提取代理安装存档时创建)到包含 unicode 字符的目录名称,则 AMQ 管理控制台无法启动。启动代理时显示的日志信息中会显示以下错误:
WARN [org.eclipse.jetty.ee9.webapp.WebAppContext] Failed startup of context oeje9w.WebAppContext@626d2016{/metrics,/metrics,null,false,@Connector-0}{/home/jcliffor/Downloads/<directory name> /web/metrics.war}__ java.lang.IllegalArmentment: Bad escape: Bad escape
ENTMQBR-910 19 更改 ingressDomain 不会更新路由。
如果将
spec.ingressDomain属性的值改为空值,则在现有路由中不会更新域值。此问题的原因是,只有在创建新路由时,OpenShift 路由的spec.host字段会自动生成。
ENTMQBR-9187 - 在部署 CR 且消息迁移无法按预期工作时,Operator 会显示禁止的错误。
如果使用 OpenShift CLI 或使用带有自定义 YAML 文件的 OperatorHub 安装 Operator,您可以将 Operator 配置为监视多个命名空间或与安装 Operator 不同的单个命名空间。在这两个配置中,部署
ActiveMQArtemisCR 时会显示以下错误:W0614 14:18:59.355936 1 reflector.go:535] k8s.io/client-go/informers/factory.go:150: failed to list *v1.StatefulSet: statefulSets.apps is forbidden: User "system:serviceaccount:amq-broker-operator-olm:amq-broker-controller-manager" cannot list resource "statefulSets" in API group "apps" in the cluster scope.代理部署已创建,并可以正常工作。但是,如果您随后缩减部署,删除的代理中的信息不会迁移到另一个代理,并会丢失。
要避免这个问题,允许 Operator 监控所有命名空间(默认命名空间),或者配置 Operator 以观察安装 Operator 的单个命名空间。
ENTMQBR-810 6- AMQ Broker Drainer pod 在更改 CR 中的 MessageMigration 后无法正常工作
您无法更改正在运行的代理部署中
messageMigration属性的值。要临时解决这个问题,您必须在新的ActiveMQ ArtemisCR 中设置messageMigration属性所需的值,并创建新的代理部署。
ENTMQBR-7359 - 使用 7.10.0 Operator 更改为当前处理凭证 secret
Operator 存储用于连接到 secret 中的代理的管理员用户名和密码。默认 secret 名称采用 <
custom-resource-name>-credentials-secret的形式。您可以手动创建 secret,或允许 Operator 创建 secret。如果在 7.10.0 之前在自定义资源中配置
adminUser和adminPassword属性,Operator 会使用这些属性的值更新手动创建的 secret。从 7.10.0 开始,Operator 不再更新手动创建的 secret。因此,如果您更改了 CR 中的adminUser和adminPassword属性的值,您必须: f * 使用新用户名和密码更新 secret,并且允许 Operator 创建 secret。当 Operator 创建 secret 时,如果 CR 中指定了这些值,它会添加adminUser和adminPassword属性的值。如果这些属性不在 CR 中,Operator 会为 secret 生成随机凭证。
ENTMQBR-71 11- 7.10 版本 operator 通常会在升级过程中删除 StatefulSet
如果您要升级到 AMQ Broker Operator 7.10.0,新的 Operator 会在协调过程中自动删除每个部署的现有 StatefulSet。当 Operator 删除 StatefulSet 时,现有代理 pod 会被删除,这会导致临时代理中断。
您可以运行以下命令来手动删除 StatefulSet,并在 Operator 获取 StatefulSet 前出现孤立的 pod: oc delete statefulSet <statefulSet < statefulSet-name>-- cascade=orphan
在升级过程中手动删除 StatefulSet 可让新 Operator 在不删除正在运行的 pod 的情况下协调 StatefulSet。如需更多信息,请参阅在 OpenShift 上部署 AMQ Broker 中的 使用 OperatorHub 升级 Operator。
ENTMQBR-5749 - Remove unsupported operator 在 OperatorHub 中可见
仅支持 从 OperatorHub 部署 Operator 中提到的 Operator 和 Operator 频道。出于与 Operator 出版物相关的技术原因,其他 Operator 和频道在 OperatorHub 中可见,应忽略。为了参考,以下列表显示了哪些 Operator 可见,但不被支持:
- Red Hat Integration - AMQ Broker LTS - 所有频道
- Red Hat Integration - AMQ Broker - alpha、current 和 current-76
ENTMQBR-414 1- AMQ Broker Operator: 增加持久性卷大小需要在重新创建有状态集后手动参与
如果您试图增加部署持久性存储的代理所需的持久性卷声明(PVC)的大小,则更改不会在没有进一步手动步骤的情况下生效。例如,假设您配置自定义资源(CR)实例的
storage.size属性,以指定 PVC 的初始大小。如果您修改 CR 以指定storage.size的不同值,则现有代理将继续使用原始 PVC 大小。即使您将部署缩减为零代理,然后备份到原始数量,也会发生这种情况。但是,如果您扩展部署的大小来添加额外的代理,新代理将使用新的 PVC 大小。要临时解决这个问题,并确保部署中的所有代理都使用相同的 PVC 大小,请使用 OpenShift Container Platform Web 控制台扩展部署使用的 PVC 大小。在控制台中,单击 menu:Storage[Persistent Volume Claims]。点您的部署。在右上角的 Actions 下拉菜单中,选择
Expand PVC并输入新值。
第 9 章 重要链接 复制链接链接已复制到粘贴板!
更新于 2025-11-18