使用限制
本文為您介紹云消息隊列 MQTT 版對某些具體指標的約束和規范,您在使用云消息隊列 MQTT 版時請不要超過相應的限制值,以免程序出現異常。具體的限制項和限制值請參見下表。
如果您購買了鉑金版的云消息隊列 MQTT 版實例,則可按需定制部分指標(下表中已標出),咨詢定制請聯系云消息隊列 MQTT 版技術支持,釘釘群號:35228338。
實例限制
限制項 | 限制值 | 說明 |
實例名稱 |
| 創建實例時不支持自定義實例名稱,新創建實例的名稱默認和實例ID一致,您可以在云消息隊列 MQTT 版控制臺修改。 |
單實例消息收發TPS | 根據購買的規格進行限流,云消息隊列 MQTT 版消息收發TPS超過規格上限后,客戶端(包含開源MQTT客戶端和云端SDK)可能會出現連接斷開、響應超時和消息丟棄等情況,不保證消息可靠到達。 | 在MQTT客戶端場景下,單MQTT客戶端消息收發量一般不會很大,且某些SDK設計上不支持,建議單MQTT客戶端消息TPS不超過20。如您所需的消息收發量較大,且是服務端使用場景,請考慮使用云消息隊列 RocketMQ 版客戶端。 |
單實例在線連接數 | 根據購買的規格進行限流,超過規格上限后新建連接可能被拒絕。 | 云消息隊列 MQTT 版會默認提供在線用戶連接數的監控報警。請合理調整監控閾值。 |
單實例訂閱關系數 | 當訂閱數超過規格限制后,新增的訂閱可能會失敗,訂閱關系對應的客戶端連接可能會斷開,且不保證訂閱關系完整。 | 云消息隊列 MQTT 版會默認提供訂閱關系數的監控報警。請合理調整監控閾值。 |
實例域名接入點對應的IP地址 | 無 | 該IP地址隨時可能更換,請勿假設IP地址固定。在以下使用情況中出現的問題云消息隊列 MQTT 版產品方概不負責:
|
Topic限制
限制項 | 限制值 | 說明 |
Topic名稱 |
| 使用云消息隊列 MQTT 版收發消息時,Topic長度不得低于或超過最值限制,否則會導致無法發送或者訂閱。 |
單實例父級Topic數量 | 25個 | 如果默認限制不滿足,請聯系云消息隊列 MQTT 版技術支持,釘釘群號:35228338。 說明 子級Topic數量暫無限制,為了業務平穩運行,建議子級Topic數量不要超過1000。 |
Topic跨地域使用 | 不支持 | 云消息隊列 MQTT 版配置了相關規則實現與云消息隊列 RocketMQ 版的數據互通,則相關資源應處于同一地域。 |
客戶端限制
限制項 | 限制值 | 說明 |
Client ID |
| 使用云消息隊列 MQTT 版收發消息時,Client ID不得超過限制,否則會導致連接被斷開。 |
Group ID |
| 使用云消息隊列 MQTT 版收發消息時,Group ID長度不得低于或超過最值限制,否則會導致無法發送或者訂閱。 |
Device ID |
| 使用云消息隊列 MQTT 版收發消息時,Device ID不得超過限制,否則會導致連接被斷開。 |
單個客戶端訂閱Topic數量 | 30個 | 每個客戶端最多允許同時訂閱30個Topic,超過該限制會導致無法新增新的訂閱關系。鉑金版實例可支持定制,如需定制,請聯系云消息隊列 MQTT 版技術支持,釘釘群號:35228338。 計算訂閱Topic數量時,一個包含通配符的訂閱計算為一個訂閱數量;同一父級Topic下不同子級的Topic訂閱被計算為不同的Topic數量。例如:A/#被計算為一個訂閱數量。A/#和A/a1/#被計算為2個Topic訂閱數量。 |
通配符訂閱關系數量 | 每個父級Topic下僅允許100個通配符訂閱關系。 | 服務端會限制每個父級Topic生效的通配符訂閱關系的數量,超過限制后服務端會只加載100個,可能會造成部分訂閱的客戶端收不到消息。請嚴格控制數量。例如:對于同一個父級Topic A,訂閱的A/#和A/a1/#以及A/a2/#計算為3個訂閱關系數量。 |
心跳最大時間間隔 | 8分鐘 | 使用云消息隊列 MQTT 版收發消息時,支持的最大心跳時間間隔為8分鐘。 |
消息流入、流出、客戶端上下線規則限制
限制項 | 限制值 | 說明 |
單實例規則數量 | 100 | 如果默認限制不滿足,請聯系云消息隊列 MQTT 版技術支持,釘釘群號:35228338。 |
規則去重限制 | 同一個內部資源同種規則只能創建一個規則。 | 例如一個Group ID只能創建一個上下線通知規則,一個MQTT Topic只能創建一個數據流入規則和一個數據流出規則。 |
地域限制 | 不支持跨地域創建規則,規則的數據源和數據目標所屬的實例必須處于同一地域。 | 例如,創建數據流出規則,數據源云消息隊列 MQTT 版實例屬于華東1(杭州)地域,則數據目標云消息隊列 RocketMQ 版只能選擇華東1(杭州)地域的實例。 |
云消息隊列 MQTT 版實例版本 | 僅新版本的實例支持。 | 新購的云消息隊列 MQTT 版實例默認為新版本實例,舊版實例已不支持購買。 |
云消息隊列 RocketMQ 版實例版本 | 僅4.0系列實例支持 | 云消息隊列 MQTT 版和云消息隊列 RocketMQ 版通過消息流入或消息流出規則進行數據互通時,云消息隊列 RocketMQ 版僅4.0系列實例支持消息流入或流出規則,5.0系列實例不支持。 |
消息收發限制
限制項 | 限制值 | 說明 |
消息大小 | 64 KB | 消息負載不得超過該限制,否則消息會被丟棄。 鉑金版實例可支持定制。如需定制,請聯系云消息隊列 MQTT 版技術支持,釘釘群號:35228338。 |
消息保存時間 | 3天 | 僅當QoS=1且cleanSession=false時,云消息隊列 MQTT 版才會保留離線消息,且最多保留3天,超過時間將自動滾動刪除。Qos和cleanSession的詳細信息,請參見名詞解釋。 鉑金版實例可支持定制,如需定制,請聯系云消息隊列 MQTT 版技術支持,釘釘群號:35228338。 |
QoS和cleanSession | 不支持以下配置:
| 使用云消息隊列 MQTT 版收發消息時:
|
Token有效期 | 30天 | 調用申請Token接口時,如果ExpireTime的取值大于30天,接口仍然調用成功返回Token,無報錯,但實際有效期仍為30天。 |
離線消息可見時間 | 10秒 | 服務端首次推送消息后必須要等待超時或者失敗后才能確認該消息是否轉化為離線消息,對應的延遲時間通常是5秒~10秒。 |
離線消息存儲數量 | 100萬條 | 服務端會限制每個實例存儲的離線消息數量。超過該限制后,服務端會從最早的消息開始清理。因此,請合理使用持久化訂閱模式,以免產生過多無用的離線消息。 如果默認限制不滿足,請聯系云消息隊列 MQTT 版技術支持,釘釘群號:35228338。 |
云端API限制
調用云端API的每秒請求數(QPS)限制,請參見QPS限制。