更新时间:2024-11-11 GMT+08:00

约束与限制

本章节介绍华为云分布式消息服务RabbitMQ版产品功能的约束和限制,您在使用RabbitMQ实例时注意不要超过相应的约束和限制,以免程序出现异常。

如果因为您的实例配置超过相应的约束和限制而导致的任何不稳定情况,不在SLA承诺和赔偿范围内。

实例

表1 实例约束与限制

限制项

约束和限制

版本

当前服务端版本为3.8.35和AMQP-0-9-1。

连接数

RabbitMQ单机和集群实例,不同实例规格的连接数上限不一致,具体限制,请参考产品规格

通道数

单条连接可以建立的通道数如下:

  • RabbitMQ 3.8.35版本:<= 2047
  • RabbitMQ AMQP-0-9-1版本:<= 2000

内存高水位阈值

<= 40%

内存使用率超过40%可能会触发内存高水位,内存高水位会导致生产者流程被阻塞。

仅RabbitMQ 3.8.35版本存在内存高水位限制。

磁盘高水位阈值

>= 5GB

磁盘剩余空间低于5GB会触发磁盘高水位,生产者流程被阻塞。

仅RabbitMQ 3.8.35版本存在磁盘高水位限制。

cluster_partition_handling

pause_minority

当集群发生网络分区时,代理会检查自己是否处于“少数派”(存储分区的代理数小于等于总代理数的一半称为少数派)。少数派中的代理将会自动关闭服务并定期检测网络状态,待分区恢复之后重新启动服务。如果未开启镜像队列,发生分区时少数派上的队列将无法生产消费。

此策略相当于放弃了可用性而选择了数据一致性。

RabbitMQ插件

RabbitMQ插件功能可用于测试和迁移业务等场景,不建议用于生产业务。因使用插件导致的可靠性问题,不在服务承诺的SLA范围内。

仅RabbitMQ 3.8.35版本支持插件功能。

修改VPC/子网/可用区

实例创建后,不支持修改VPC/子网/可用区。

存储空间

只支持扩大存储空间,不支持减小存储空间。

代理数量

  • 集群实例只支持增加代理数量,不支持减小代理数量。
  • 增加代理数量过程中会有秒级业务中断,客户端需要支持自动重连,建议在业务低峰时进行变更。
  • 单机实例不支持修改代理数量。

仅RabbitMQ 3.8.35版本支持修改代理数量。

代理规格

  • RabbitMQ 3.8.35版本支持扩容/缩容代理规格,RabbitMQ AMQP-0-9-1版本仅支持扩容代理规格。
  • 单机实例和没有配置镜像/仲裁队列的集群实例在变更规格过程中会有分钟级业务中断,客户端需要支持自动重连,建议在业务低峰时进行变更。
  • 配置了镜像/仲裁队列的集群实例在变更规格过程中会有秒级业务中断,客户端需要支持自动重连,建议在业务低峰时进行变更。

Vhost

表2 Vhost约束与限制

限制项

约束和限制

删除Vhost

创建实例时创建的默认Vhost,不支持删除。

Exchange

表3 Exchange约束与限制

限制项

约束和限制

默认Exchange

RabbitMQ 3.8.35版本在创建Vhost后会创建7个默认Exchange:(AMQP default)、amq.direct、amq.fanout、amq.headers、amq.match、amq.rabbitmq.trace、amq.topic。

绑定Exchange

  • RabbitMQ 3.8.35版本中,名为“(AMQP default)”的Exchange不能绑定任何Exchange。
  • “Internal”为“是”的Exchange只能绑定Exchange,不能绑定Queue。
  • RabbitMQ AMQP-0-9-1版本的Exchange不支持绑定Exchange,只支持绑定Queue。

删除Exchange

RabbitMQ 3.8.35版本中,默认Exchange不支持删除。

Queue

表4 Queue约束与限制

限制项

约束和限制

绑定Queue

  • RabbitMQ 3.8.35版本中,名为“(AMQP default)”的Exchange不能绑定任何Queue。
  • “Internal”为“是”的Exchange只能绑定Exchange,不能绑定Queue。

惰性队列

仅RabbitMQ 3.8.35版本支持惰性队列。

仲裁队列

仅RabbitMQ 3.8.35版本支持仲裁队列。

单一活跃消费者

仅RabbitMQ 3.8.35版本支持单一活跃消费者特性。

消息

表5 消息约束与限制

限制项

约束和限制

消息大小

RabbitMQ 3.8.35版本单条消息的最大长度为50MB,RabbitMQ AMQP-0-9-1版本单条消息的最大长度为4MB。

服务端限制了单条消息的最大长度,请勿发送大于此长度的消息,否则生产失败。