

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

# RabbitMQ 4.3
<a name="rabbitmq-43"></a>

 Amazon MQ 现在在所有支持的实例大小上支持 mq.m7g 实例类型的 RabbitMQ 4 版本系列中的 RabbitMQ 4.3。RabbitMQ4.3 引入了法定队列增强功能、新的交换类型，并完成了对早期 4.x 版本中过时的多项功能的移除。有关此版本的更多信息，请参阅 GitHub 网站上的 [RabbitMQ 4.3.0 版本说明](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v4.3.0)。

**重要**  
 亚马逊 MQ 仅支持从 RabbitMQ 4. RabbitMQ 2 升级到 4.3。您无法直接从 RabbitMQ 3.13 升级到 4.3。如果您的经纪商运行的是 RabbitMQ 3.13，则必须先升级到 RabbitMQ 4.2，然后才能升级到 4.3。

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

升级到 RabbitMQ 4.3 时，以下开源更改可能会影响您的应用程序。在升级经纪商之前，请查看这些更改。
+ **临时非排他队列被拒绝：**声明一个既非持久队列又非排他性的队列现在会返回错误。RabbitMQ4.3 版亚马逊 MQ 移除了对该功能的支持。改为在网站上使用持久队列、独占队列或具有队列 TTL [ 的持久](https://www.rabbitmq.com/docs/ttl#queue-ttl)队列。RabbitMQ
+ **全局 QoS 被拒绝：`global=true`现在`basic.qos`使用**呼叫会返回信道错误。RabbitMQ4.3 版亚马逊 MQ 移除了对该功能的支持。改为使用每位消费者 prefetch (`global=false`)。有关此变更的更多信息，请参阅RabbitMQ网站[上的](https://www.rabbitmq.com/blog/2021/08/21/4.0-deprecation-announcements#removal-of-global-qos)移除全球 QoS。
+ **移除了经典队列 v1 存储：`x-queue-version=1`现在使用以下方式**声明队列会返回错误。经典队列 v2 是唯一支持的存储引擎。亚马逊 MQ 自 RabbitMQ 3.12 版本起强制执行 v2，因此现有队列不受影响。
+ **使用者超时不再适用于经典队列：**经典队列不再评估消费者超时。如果消费者停留在应用程序级别，则RabbitMQ不会自动重新传送消息。该`consumer_timeout`设置继续适用于法定队列。如果您的应用程序依赖传统队列的使用者超时，请考虑迁移到仲裁队列或实施应用程序级心跳检查。有关此变更的更多信息，请参阅 GitHub 网站上的 [RabbitMQ 4.3.0 版本说明](https://github.com/rabbitmq/rabbitmq-server/releases/tag/v4.3.0)。

## 中的新功能和增强功能 RabbitMQ 亚马逊 MQ 上的 4.3
<a name="rabbitmq-43-new-features"></a>
+ **Quorum 队列严格优先级：**Quorum 队列现在支持严格的优先级排序，多达 32 个级别 (0—31)，使用队列参数启用。`x-max-priority` Higher-priority 消息始终在优先级较低的消息之前传送。这取代了 4.2 中引入的基于比率的 2 级交付。RabbitMQ有关法定队列优先级的更多信息，请参阅网站上的 [ Quorum队列优先级](https://www.rabbitmq.com/docs/quorum-queues#priorities)。RabbitMQ
+ **Quorum 队列延迟重试：**Quorum 队列支持延迟重试，可配置递增回退。您可以使用队列参数或策略密钥 (`delayed-retry-type`、`delayed-retry-min`、`delayed-retry-max`) 来配置重试行为。有关法定队列的更多信息，请参阅网站上的[法定队列。](https://www.rabbitmq.com/docs/quorum-queues) RabbitMQ
+ **Quorum 队列的精细**消费者超时：现在可以按使用者、每个队列或使用策略来设置使用者超时。与之前的经纪`consumer_timeout`商范围设置相比，这提供了更精细的控制。
+ **使用策略可更改交付限制：**现在可以使用策略更新法定队列传送限制，无需重新声明队列。
+ **一致的哈希交换（x-modulus-hash）：`x-modulus-hash`交换类型现已内置**在核心中。RabbitMQ这种交换类型通过使用路由密钥的一致哈希来跨绑定队列分发消息，从而无需客户端逻辑即可实现工作负载分片。有关一致哈希交换的更多信息，请参阅RabbitMQ网站[上的](https://www.rabbitmq.com/docs/consistent-hash-exchange)一致哈希交换。

**重要**  
 如果您要从 RabbitMQ 4.2 升级，请注意消息传送的以下更改。以前优先级映射为高（≥5）或正常（0—4）的现有消息现在使用严格顺序传送。因此，优先级较低的消息可能会枯竭，而优先级较高的消息仍留在队列中。RabbitMQ4.2 使用基于 2:1 的比率传输，这保证了正常优先级消息的进展。