

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# RabbitMQ 4.2
<a name="rabbitmq-42"></a>

 亚马逊 MQ 支持 RabbitMQ 4.2 作为 RabbitMQ 4 系列的第一个版本。RabbitMQ4.2 引入了 AMQP 1.0 作为核心协议、Khepri 作为默认元数据存储、仲裁队列消息优先级以及包括 mTL 和 HTTP 身份验证在内的新身份验证插件。有关此版本的更多信息，请参阅 GitHub 网站上的 [RabbitMQ 4.0.0 版本说明](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v4.0.0)。

## 中的新功能和增强功能 RabbitMQ 亚马逊 MQ 上的 4.2
<a name="rabbitmq-42-new-features"></a>
+ **AMQP 1.0 作为核心协议：**有关更多信息，请参阅[协议。](rabbitmq-supported-protocols.md)
+ **本地铲子：除了 AMQP 0-9-1 和 AMQP 1.0 之外，**铲子现在还支持一种名为 “本地” 的新协议。本地铲子内部基于 AMQP 1.0，但它们不使用单独的 TCP 连接，而是使用集群节点和内部 API 之间的集群内连接来发布和消费消息。与 AMQP 0-9-1 和 AMQP 1.0 相比，这只能用于在同一个集群内消费和发布，并且可以提供更高的吞吐量，同时使用更少的资源。
+ **Quorum 队列支持消息优先级：**Quorum 队列消息优先级始终处于活动状态，不需要策略。当法定队列收到设置了优先级的消息时，它会启用优先级排序。Quorum 队列仅支持两个内部优先级——高优先级和普通优先级。

   RabbitMQ将没有优先级的消息和优先级为 0—4 的消息映射到正常。优先级高于 4 的消息将映射到高。 High-priority 消息比普通优先级消息更受青睐，比例为 2:1。对于每 2 条高优先级消息，队列会传送 1 条普通优先级消息（如果有）。因此，法定队列实现了非严格的、公平共享的优先级处理模型，可确保正常优先级消息的处理进度。
+ **Khepri：使用 ** Khepri 作为 4 家经纪商的默认元数据存储 RabbitMQ
+ **双向 TLS (mTLS)：**亚马逊 MQ 支持RabbitMQ经纪人的双向 TLS (mTL)，允许客户使用证书进行身份验证。有关更多信息，请参阅 [ mTLS 配置](configure-mtls.md)。
+ **SSL 证书身份验证插件：**SSL 身份验证插件使用来自 mTLS 连接的客户端证书对用户进行身份验证，允许使用 X.509 客户端证书而不是用户名和密码凭据进行身份验证。有关更多信息，请参阅 [ SSL 证书身份验证](ssl-for-amq-for-rabbitmq.md)。
+ **HTTP 身份验证插件：**HTTP 身份验证后端插件允许将身份验证和授权委托给外部 HTTP 服务。有关更多信息，请参阅 [ HTTP 身份验证和授权](http-for-amq-for-rabbitmq.md)。
+ **JMS 支持：**代理现在支持 JMS 工作负载，启用 JMS 主题交换插件，允许 JMS 应用程序使用 JMS 客户端进行连接。[RabbitMQ](https://github.com/rabbitmq/rabbitmq-jms-client)
+ **可配置的存储大小：在 CLUSTER\_MULTI\_AZ 模式下部署的 ** RabbitMQ 4.x 代理支持可配置的 EBS 存储大小。有关更多信息，请参阅 [ mq.m7g 实例类型。](rmq-broker-instance-types.md#instance-types-m7g-cluster)

## 中已弃用的功能 RabbitMQ 亚马逊 MQ 上的 4.2
<a name="rabbitmq-42-deprecations"></a>
+ **经典队列的镜像：在不对客户端库和应用程序进行任何重大更改的情况下继续支持**经典队列，但它们现在是不可复制的队列类型。客户端将能够连接到任何节点，以便从任何非复制的经典队列中发布和使用。为了复制和数据安全，建议使用法定队列。
+ **移除全局 QoS：建议**客户设置每个消费者 QoS（非全局），而不是全局 QoS，后者对整个频道使用单个共享预取。
+ **支持临时非独占队列：**临时队列是指其生命周期与其声明所在节点的正常运行时间相关的队列。在单实例代理中，它们会在节点重新启动时被删除。在集群部署中，当托管它们的节点重新启动时，它们将被删除。我们建议使用队列 TTL 在闲置一段时间后自动删除未使用的空闲队列。继续支持独占队列，一旦与该队列的所有连接都被删除，独占队列就会被删除。

## 中的重大变化 RabbitMQ 亚马逊 MQ 上的 4.2
<a name="rabbitmq-42-breaking-changes"></a>

升级到 RabbitMQ 4.2 时，以下开源更改可能会影响您的应用程序。在升级经纪商之前，请查看这些更改。
+  **默认队列类型：RabbitMQ4 代理**的默认队列类型设置为 quorum。如果在队列创建期间未指定队列类型参数，则将创建法定队列。
+ **法定队列的默认重新传送限制设置为 20：重新传送 20 次或更多次的**邮件将被取消信件或丢弃（删除）。如果队列的常见情形是每条消息 20 次传送，则必须为此类队列配置死字目标或更高的限制，以避免数据丢失。推荐的方法是通过政策。
+ **amqplib：低于 0.10.7 的 ** Node JS 客户端 ** amqplib 版本**或任何使用 ** frame\_max < 8192 的 AMQP 客户端库将无法连接到 ** RabbitMQ
+ [默认资源限制：](rabbitmq-resource-limits-configuration.md)Amazon MQ for RabbitMQ 为连接、频道、每个频道的消费者、队列、虚拟主机、铲子、交换和最大消息大小引入了默认资源使用限制。它们可用作保护经纪商可用性的护栏，并且可以使用配置进行自定义，以满足您的特定要求。