第 3 章 新的和更改的功能
本节论述了 AMQ Broker 7.12 中突出显示的一组增强功能和更改的功能。有关功能增强的完整列表,请参阅 AMQ Broker 7.12.0 增强。
- AMQ Broker 与 Openshift 的 cert-manager Operator 集成以进行证书管理
- 在 OpenShift 上的 AMQ Broker 7.12 中,您可以使用 cert-manager Operator for Openshift 创建和管理在 AMQ Broker 上配置 TLS 所需的证书。如需更多信息,请参阅在 Openshift 上部署 AMQ Broker 中的 为 Openshift 使用 cert-manager Operator。
- AMQ Broker Openshift 服务提供 TLS 证书
- 如果要保护同一 Openshift 集群中的代理和客户端之间的内部连接,您可以在 acceptor 服务中添加注解来请求 Openshift 生成服务用 TLS 证书。如需更多信息,请参阅在 Openshift 上部署 AMQ Broker 中的 使用 Openshift 服务服务证书。
- 支持 Privacy Enhanced Mail (PEM)证书
- 在 AMQ Broker 7.12 中,增加了对 PEM 格式的 TLS 证书的支持。
- 支持在具有受限策略的 Openshift 命名空间中部署
- 默认情况下,您可以在具有受限 OpenShift 安全上下文约束的命名空间中在 OpenShift 上部署 AMQ Broker 7.12。除了 pod 安全选项外,如果您要在不同 OpenShift 安全上下文中运行代理,您可以自定义 CR 中的容器安全选项。如需更多信息,请参阅在 Openshift 上部署 AMQ Broker 中的 自定义资源配置参考。
- 隔离
brokerProperties
配置 -
如果您的 OpenShift 上 AMQ Broker 7.12 的自定义资源(CR)包含
brokerProperties
部分,并且 CR 处于最大大小限制 1 MB,您可以将brokerProperties
配置隔离到一个或多个 Java 属性文件中,然后在 CR 中引用。您可能还想在单独的文件中隔离brokerProperties
配置,以逻辑方式对brokerProperties
项进行分组,以便更轻松地维护。如需更多信息,请参阅在 Openshift 上部署 AMQ Broker 中的 访问brokerProperties
配置。 - 除了 Openshift 上的路由外,还支持 ingresses
- 在 OpenShift 上的 AMQ Broker 7.12 中,除了路由外,您还可以使用入口功能向 Openshift 集群以外的客户端公开接收器、连接器和管理控制台。如需更多信息,请参阅在 Openshift 上部署 AMQ Broker 中的 配置接收器。
- 支持为第三方 JAR 文件挂载共享卷
- 在 OpenShift 上的 AMQ Broker 7.12 中,您可以将 Operator 配置为在集群中的每个代理 pod 上挂载共享卷。在每个 pod 上挂载共享卷的用例是存储第三方 JAR 文件,如用于 JDBC 数据库的 JAR 文件(代理需要)。在 RHEL 和 Openshift 平台上,您可以扩展 Java 类路径,以便在运行时为代理提供额外的 JAR 文件。如需更多信息,请参阅在 Openshift 上部署 AMQ Broker 中的 添加第三方 JAR 文件。
- 自定义 Operator 创建的 Openshift 资源
在 OpenShift 上的 AMQ Broker 7.12 中,您可以自定义 Openshift 资源,如部署、Pod 和由 Operator 创建和管理的服务。如果要执行某些任务,则自定义这些资源很有用,例如:
- 添加自定义注解,以控制资源如何被其他服务处理。
修改没有在代理 CR 中公开的属性。
如需更多信息,请参阅在 Openshift 上部署 AMQ Broker 中的自定义 Operator 创建的 Openshift 资源。
- 支持在 Openshift 上的 AMQ Broker 中添加插件
- 在 OpenShift 上的 AMQ Broker 7.12 中,您可以通过在 CR 中注册插件来扩展 AMQ Broker 的功能。如需更多信息,请参阅在 Openshift 上部署 AMQ Broker 中的使用 AMQ Broker 注册插件。
- 安全集群连接支持
- 在 Openshift 上的 AMQ Broker 7.12 中,您可以通过为内部接收器和连接器启用 SSL 来保护集群连接。如需更多信息,请参阅在 Openshift 上部署 AMQ Broker 中的保护集群连接。
- 自动重新载入 SSL 工件
- 在 OpenShift 和 RHEL 上的 AMQ Broker 7.12 中,您可以将 AMQ Broker 配置为重新加载更新的 TLS 证书和其他更改密钥存储或信任存储配置,而无需重启代理。要配置自动重新载入,请为 acceptor 设置 sslAutoReload' 属性。有关如何在 Openshift 上配置 SSL 工件自动重新载入的示例,请参阅在 Openshift 上部署 AMQ Broker 中的 为 Openshift 使用 cert-manager Operator。
- 集群代理的健康检查
-
在 AMQ Broker 7.12 中,您可以使用
artemis check cluster
命令行工具来验证集群中代理节点的拓扑。如需更多信息,请参阅管理 AMQ Broker 中的 检查代理、队列和集群的健康状况。 - 使用 AMQP 代理连接的联邦支持
在 AMQ Broker 7.12 中,您可以通过出站 AMQP 代理连接配置地址和队列的联邦。与使用 Core 协议相比,使用 AMQP 协议提供以下优点:
- 如果客户端使用 AMQP 协议进行消息传递,请使用 AMQP 协议进行联邦,以消除 AMQP 和 Core 之间的消息转换。
- AMQP 联邦支持通过单一传出连接进行双向联邦。双向支持消除了远程代理重新连接到本地代理的需求,这是当您为联邦使用 Core 协议时的要求,这些协议可能会被网络策略阻止。
- AMQP 联邦提供对代理间消息移动的更好的控制,以避免消息在代理间移动。
如需更多信息, 请参阅配置 AMQ Broker 中的使用 AMQP 协议配置联邦。
- 使用命令行界面使用自定义 shell
-
在 AMQ Broker 7.12 中,您可以使用 AMQ Broker 命令行界面中的自定义
artemis
shell 与代理交互。自定义 shell 具有命令和命令参数的内置自动完成功能。如需更多信息,请参阅管理 AMQ Broker 中的在artemis
shell 中使用 CLI。 - 包含通配符的地址的字面匹配
- 在 AMQ Broker 7.12 中,您可以配置字面匹配,将通配符字符视为包含通配符的匹配地址的字面字符。如需更多信息 ,请参阅配置 AMQ Broker 中的配置字面匹配。
- 对 JMX 管理操作进行基于角色的访问控制
-
在 AMQ Broker 7.12 中,您可以使用两个新权限来
查看和编辑
broker.xml
文件中配置基于角色的访问控制。有关在 Openshift 中配置基于角色的访问控制的详情,请参考在 Openshift 上部署 AMQ Broker 中的 为管理操作配置 基于角色的访问控制。 - 更改到 queue stat 命令的输出格式
-
queue stat
命令的输出格式已从 7.11 和早期版本的 AMQ Broker 中的输出更改,这可能会影响部署中运行的自动化进程。
- 在 MQTT acceptor 中可配置的新参数,以自动删除 MQTT 订阅队列
-
在 AMQ Broker 7.12 中,您可以在 MQTT acceptor 中配置
defaultMqttSessionExpiryInterval
参数,以自动删除在相应客户端会话过期时不会被删除的 MQTT 订阅队列。new 参数代表在代理删除会话状态和订阅队列前必须经过 的秒数。在 7.12 之前,需要在address
114 参数,以删除在客户端会话过期时不会被删除的队列。-setting
中配置 auto-delete
- Operator 频道
AMQ Broker Operator、
Red Hat Integration - AMQ Broker for RHEL 8 (Multiarch)
有以下频道:-
7.12.x
- 此频道仅为版本 7.12 提供更新,并且是 Long Term Support (LTS)频道。 -
7.11.x
- 此频道仅为版本 7.11 提供更新,并且是 Long Term Support (LTS)频道。 -
7.10.x
- 此频道仅为版本 7.10 提供更新,并且是 Long Term Support (LTS)频道。
-
无法通过切换频道来升级 Operator。您必须卸载现有 Operator,并从适当的频道安装 Operator 的新版本。
要确定需要选择哪个 Operator,请参阅 Red Hat Enterprise Linux Container Compatibility Matrix。
- 程序示例
- 在 AMQ Broker 7.12 中,示例程序不再发布并安装代理。相反,您可以访问以下软件仓库中的示例程序 :https://github.com/apache/activemq-artemis-examples。