約束與限制
更新時間 2024-01-17 13:48:48
最近更新時間: 2024-01-17 13:48:48
分享文章
本文主要介紹分布式消息服務RabbitMQ的約束與限制。
分布式消息服務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等組件。插件相關內容為非核心功能,不建議用于生產業務。 |