雲訊息佇列 RocketMQ 版對執行個體的資源配額、執行個體規格和相關參數進行了約束和規範,您在使用雲訊息佇列 RocketMQ 版時不要超過對應的限制值,避免應用出現異常。
參數限制
以下參數中各資源的命名及備忘等限制值不支援調整,請嚴格按照規範設定,避免因出現特殊字元或長度超限導致系統處理異常。
參數 | 限制值 | 說明 |
執行個體名稱 |
| 無。 |
Topic名稱 |
系統保留字元:Topic名稱不允許使用以下保留字元或含有特殊首碼的字元命名。 | Topic命名應該盡量使用簡短、常用的字元,避免使用特殊字元。特殊字元會導致系統解析出現異常,字元過長可能會導致訊息收發被拒絕。 |
ConsumerGroup名稱 |
系統保留字元:ConsumerGroup不允許使用以下保留字元或含有特殊首碼的字元命名。 | 無。 |
執行個體備忘 |
| 無。 |
Topic備忘 | ||
Group備忘 | ||
ACL Credentials |
| 無。 |
請求逾時時間 |
| 請求逾時時間是用戶端本地同步調用的等待時間,請根據實際應用設定合理的取值,避免線程阻塞時間過長。 |
訊息大小 | 不超過4 MB。 不涉及訊息壓縮,僅計算訊息體body的大小。 | 訊息傳輸應盡量壓縮和控制負載大小,避免超大檔案傳輸。若訊息大小不滿足限制要求,可以嘗試分割訊息或使用OSS儲存,用訊息傳輸URL。 |
訊息自訂屬性 |
系統保留屬性:不允許使用以下保留屬性作為自訂屬性的Key。 | 無。 |
MessageGroup |
| MessageGroup是順序訊息的分組標識。一般設定為需要保證順序的一組訊息標識,例如訂單ID、使用者ID等。 |
訊息發送重試次數 |
| 訊息發送重試是用戶端SDK內建的重試策略,對應用不可見,建議取值不要過大,避免阻塞業務線程。 如果訊息達到最大重試次數後還未發送成功,建議業務側做好兜底處理,保證訊息可靠性。 |
訊息消費重試次數 |
| 消費重試次數應根據實際業務需求設定合理的參數值,避免使用重試進行無限觸發。重試次數過大容易造成系統壓力過量增加。 |
事務異常檢查間隔 |
| 事務異常檢查間隔指的是,半事務訊息因系統重啟或異常情況導致沒有提交,生產者用戶端會按照該間隔時間進行事務狀態回查。 間隔時間長度不建議設定過短,否則頻繁的回查調用會影響系統效能。 |
半事務訊息第一次回查時間 |
| 無。 |
半事務訊息最大逾時時間長度 |
| 半事務訊息因系統重啟或異常情況導致沒有提交,生產者用戶端會按照事務異常檢查間隔時間進行回查,若超過半事務訊息逾時時間長度後沒有返回結果,半事務訊息將會被強制復原。 您可以通過監控該指標避免異常事務。 |
定時訊息最大間隔 |
| 定時訊息間隔時間長度建議使用小時層級的時間區間,避免長時間定時。 |
PushConsumer消費逾時時間長度 |
| PushConsumer消費逾時時間長度由雲訊息佇列 RocketMQ 版服務端統一控制。 超過消費逾時時間長度訊息還未處理完成,將被系統強制判定為消費失敗並進行重試,因此可能會導致少量訊息重複。 |
PushConsumer本機快取 |
| 消費者類型為PushConsumer時,為提高消費者輸送量和效能,用戶端會在SDK本機快取部分訊息。緩衝的訊息的數量和大小應設定在系統記憶體允許的範圍內。 |
PushConsumer稍候再試時間長度 |
| 無。 |
PushConsumer消費並發度 |
| 無。 |
擷取訊息最大批次 |
| 消費者從服務端擷取訊息時,一次擷取到最大訊息條數。建議按照實際業務設定合理的參數值,一次擷取訊息數量過大容易在消費失敗時造成大批量訊息重複。 |
SimpleConsumer最大不可見時間 |
| 消費不可見時間指的是訊息處理+失敗後稍候再試的總時間長度,建議設定時取值比實際需要耗費的時間稍微長一些。 |
消費者長輪詢逾時時間 | 取值範圍:最小值5秒,最大值20秒。 支援使用者在取值範圍內自訂調整。 | 設定長輪詢逾時時間後,如果當前服務端無已就緒的訊息,用戶端請求會阻塞直到新訊息到達或者逾時時間到達。 消費者使用長輪詢可以在訊息量少的情況下大幅降低無效的空請求,降低用戶端和服務端的壓力。 |
資源配額
雲訊息佇列 RocketMQ 版會根據生產環境的穩定性和營運經驗限制部分操作的QPS和並發等指標。一般情境下這些配額指標都足夠使用,如有特殊情境雲訊息佇列 RocketMQ 版提供的額度不滿足業務需求,您可以諮詢雲訊息佇列 RocketMQ 版支援人員進行處理。
限制項 | 限制值 | 說明 | |
訂用帳戶和隨用隨付執行個體 | Serverless執行個體 | ||
單地區執行個體數 | 所有類型執行個體總數不超過1000個。 | 無。 | |
單一實例訊息收發TPS | 由購買的執行個體規格決定,具體限制值,請參見執行個體規格限制。 | 彈性自適應 | 訊息收發TPS體現當前執行個體的處理效能,實際超過該規格執行個體會被限流,請及時升級規格配置。 |
單一實例Topic數量 | 由購買的執行個體規格決定,具體限制值,請參見執行個體規格限制。 | 根據建立的Topic數量按量收費,具體計費資訊,請參見Topic費用。 | 從安全性和穩定性考慮,建議將不同業務拆分到不同執行個體中,避免所有業務集中在單個執行個體中。 |
單一實例Group數量 | 由購買的執行個體規格決定,具體限制值,請參見執行個體規格限制。 | 5000 | 從安全性和穩定性考慮,建議將不同業務拆分到不同執行個體中,避免所有業務集中在單個執行個體中。 |
訊息儲存時間長度 |
|
| 在儲存成本可控範圍內,建議盡量延長儲存時間長度。訊息儲存時間長度越長,提供的問題排查周期和回溯視窗越長。 |
單消費者分組處理中訊息的數量 | 不超過2500條。 | 不超過2500條。 | 消費者分組中處理中訊息數量過多可能是消費者響應較慢,請及時關注並排查原因。 |
操作限制
雲訊息佇列 RocketMQ 版是全託管免營運的PaaS服務,因此系統會在開源Apache RocketMQ的基礎上,對部分高風險營運操作和部分功能進行限制。如有特殊需求,您可以諮詢雲訊息佇列 RocketMQ 版支援人員進行處理。
限制項 | 說明 |
Apache RocketMQ Admin工具相容性 | 雲訊息佇列 RocketMQ 版暫不支援使用Apache RocketMQ的Admin API以及CLI管理執行個體、Topic和Group資源。 若您有API管理需求,建議使用阿里雲提供的OpenAPI。阿里雲OpenAPI支援多語言SDK和CLI命令管理。 |
Apache RocketMQ Request-Reply訊息 | 雲訊息佇列 RocketMQ 版暫不支援發送Apache RocketMQ的Request-Reply訊息。 |
Apache RocketMQ Streaming組件 | 雲訊息佇列 RocketMQ 版暫不支援提供託管的Apache RocketMQ Streaming元件服務。您可以基於阿里雲環境自行部署,或使用雲訊息佇列 RocketMQ 版提供的訊息整合功能實現輕量級的Data Integration及計算。 |
Apache RocketMQ MQTT組件 | 雲訊息佇列 RocketMQ 版暫不支援提供託管的Apache RocketMQ MQTT元件服務。建議您使用阿里雲提供的雲Message QueueTT 版服務,其功能更完整。 |
Apache RocketMQ EventBridge組件 | 雲訊息佇列 RocketMQ 版暫不支援提供託管的Apache RocketMQ EventBridge元件服務。建議您使用阿里雲的事件匯流排EventBridge服務,其功能更完整。 |
Apache RocketMQ-Connector組件 | 雲訊息佇列 RocketMQ 版暫不支援提供託管的Apache RocketMQ-Connector元件服務。您可以使用雲訊息佇列 RocketMQ 版提供的訊息整合功能實現訊息資料的流入和流出。 |
執行個體規格限制
標準版主系列下所有執行個體、以及專業版主系列下單節點版執行個體不支援突發彈性計算能力,您需要提前規劃好資源用量,避免高水位運行時出現突發流量超過規格限制,造成執行個體限流。
單一實例的Topic和Group配額是按照大規模生產環境實踐所計算,滿足絕大部分情境下的業務需求。建議您將業務按照部門和領域做執行個體拆分和隔離,避免將所有業務運行在單個執行個體中。
訊息收發計算TPS規格是按照普通訊息類型、訊息大小4 KB為基準計算訊息收發之和。進階特性訊息和大訊息計算時需要乘以對應倍率,具體計算方式,請參見計算規格說明。
若您實際使用的訊息收發TPS超過了購買的規格上限:
如果執行個體開啟了彈性TPS功能,則在[基礎規格,彈性規格]區間內,執行個體可正常運行,且這部分規格需要按量收取彈性TPS費用;超過彈效能力上限後,執行個體還是會被限流。
彈性TPS計費資訊,請參見彈性TPS費用。
執行個體不支援或未開啟彈性TPS功能,則雲訊息佇列 RocketMQ 版對執行個體進行限流。
若用戶端與雲訊息佇列 RocketMQ 版執行個體串連數過多時,服務端會消耗大量效能來維持用戶端與服務端串連,會嚴重影響服務端穩定性。因此,建議您使用的用戶端串連不要超過執行個體規格的上限值。
訂用帳戶和隨用隨付執行個體規格上限
標準版執行個體規格
執行個體子系列 | 執行個體規格 | 訊息收發基礎規格TPS上限(次/秒) | 訊息收發規格外突發彈性TPS上限(次/秒) | 串連數上限(個) | 公網下行頻寬(Mbps) | 單一實例Topic上限(個) | 單一實例ConsumerGroup上限(個) |
單節點版 | rmq.s1.micro | 500 | 不涉及 該規格不支援突發彈效能力。 | 2000 | 1~1000 支援自訂配置。 | 100 | 1000 |
叢集高可用版 | rmq.s2.2xlarge | 2000 | 4000 | 50 | 500 | ||
rmq.s2.4xlarge | 4000 | 4000 | 75 | 750 | |||
rmq.s2.6xlarge | 6000 | 6000 | 100 | 1000 |
若標準版中Topic和ConsumerGroup的最高規格(rmq.s2.6xlarge)仍無法滿足您的業務需求,建議您升級至專業版並選擇適合您的執行個體規格。
專業版執行個體規格
執行個體子系列 | 執行個體規格 | 訊息收發基礎規格TPS上限(次/秒) | 訊息收發規格外突發彈性TPS上限(次/秒) | 串連數上限(個) | 公網下行頻寬(Mbps) | 單一實例Topic上限(個) | 單一實例ConsumerGroup上限(個) |
單節點版 | rmq.p1.micro | 500 | 不涉及 該規格不支援突發彈效能力。 | 2000 | 1~1000 支援自訂配置。 | 150 | 1500 |
叢集高可用版 | rmq.p2.4xlarge | 4000 | 2000 | 4000 | 100 | 1000 | |
rmq.p2.6xlarge | 6000 | 3000 | 6000 | ||||
rmq.p2.10xlarge | 10000 | 5000 | 10000 | 150 | 1500 | ||
rmq.p2.20xlarge | 20000 | 10000 | 10000 | ||||
rmq.p2.50xlarge | 50000 | 20000 | 14000 | ||||
rmq.p2.100xlarge | 100000 | 30000 | 26000 | ||||
rmq.p2.150xlarge | 150000 | 50000 | 38000 |
若專業版中Topic和ConsumerGroup的最高規格(rmq.p2.10xlarge或以上)仍無法滿足您的業務需求,請提交工單諮詢處理。
鉑金版執行個體規格
執行個體子系列 | 執行個體規格 | 訊息收發基礎規格TPS上限(次/秒) | 訊息收發規格外突發彈性TPS上限(次/秒) | 串連數上限(個) | 公網下行頻寬(Mbps) | 單一實例Topic上限(個) | 單一實例ConsumerGroup上限(個) |
叢集高可用版 | rmq.u2.10xlarge | 10000 | 5000 | 10000 | 1~1000 支援自訂配置。 | 150 | 1500 |
rmq.u2.20xlarge | 20000 | 10000 | 10000 | ||||
rmq.u2.40xlarge | 40000 | 20000 | 10000 | ||||
rmq.u2.100xlarge | 100000 | 30000 | 26000 | ||||
rmq.u2.150xlarge | 150000 | 50000 | 38000 | ||||
rmq.u2.200xlarge | 200000 | 60000 | 50000 | ||||
rmq.u2.400xlarge | 400000 | 100000 | 54000 | ||||
rmq.u2.600xlarge | 600000 | 200000 | 80000 | ||||
rmq.u2.1000xlarge | 1000000 | 300000 | 134000 |
若鉑金版中Topic和ConsumerGroup的規格無法滿足您的業務需求,請提交工單諮詢處理。
Serverless執行個體規格上限
執行個體主系列 | 執行個體規格 | 訊息收發TPS上限(次/秒) | 串連數上限(個) | 公網流量 | 單一實例Topic上限(個) | 單一實例ConsumerGroup上限(個) |
標準版 | rmq.s3.nxlarge | 50000 | 10000 | 無上限,以實際使用量計算費用 | 5000 | 5000 |
專業版 | rmq.p3.nxlarge | 50000 超過50000次/秒後,支援分鐘級自適應彈性 | 30000 | 無上限,以實際使用量計算費用 | 5000 | 5000 |