分布式消息服务RabbitMQ在某些功能存在一些约束和限制,详细如表1所示。
表1 RabbitMQ使用约束和限制
限制项 | 约束和限制 | 描述 |
---|---|---|
版本 | 当前服务端版本为3.8.35、3.7.17。 | 兼容AMQP 0-9-1协议的客户端版本。 |
连接数 | RabbitMQ单机和集群实例,不同实例规格的连接数上限不一致,具体限制,请参考产品规格。 | - |
通道数 | <= 2047 | 单条连接可以建立的通道数。 |
消息大小 | 单条消息的最大长度为50MB。 | 服务端限制了单条消息的最大长度为50MB,请勿发送大于此长度的消息,否则生产失败。 |
内存高水位阈值 | <= 40% | 内存使用率超过40%会触发内存高水位,生产者流程被阻塞。 |
磁盘高水位阈值 | >= 5GB | 磁盘剩余空间低于5GB会触发磁盘高水位,生产者流程被阻塞。 |
cluster_partition_handling | pause_minority | 当集群发生网络分区时,代理会检查自己是否处于“少数派”(存储分区的代理数小于等于总代理数的一半称为少数派)。少数派中的代理将会自动关闭服务并定期检测网络状态,待分区恢复之后重新启动服务。如果未开启镜像队列,发生分区时少数派上的队列将无法生产消费。此策略相当于放弃了可用性而选择了数据一致性。 |
rabbitmq_delayed_message_exchange | 插件延迟时间存在1%左右的误差,可能提前或者推迟发送消息给消费者。 | 实例是否开启消息延迟功能。 |
RabbitMQ插件 | RabbitMQ插件功能可用于测试和迁移业务等场景,不建议用于生产业务。 | RabbitMQ实例主要提供AMQP 0-9-1业务消息的功能,兼容相关协议的Vhost、Exchange等组件。插件相关内容为非核心功能,不建议用于生产业务。 |