本文介紹輕量消息隊列(原 MNS)中隊列(Queue)的定義、模型關系、隊列屬性及使用限制。
定義和模型關系
在輕量消息隊列(原 MNS)中,一個隊列是一個存儲消息的容器。生產者將消息發送到隊列中,而消費者則從隊列中消費消息。
功能說明
至少一次(At least once):在消息保存時長和最大投遞次數范圍內的消息,每一條都將被接收方接收并處理至少一次。
批量處理:支持批量發送、接收和刪除消息,每批最多處理16條消息。
長輪訓:使用長輪訓的方式接收消息,可以減少請求次數幫助您降低費用。長輪訓最大等待時間為30秒。更多信息,請參考短輪詢和長輪詢。
消息不可見時間:當某個消費者收到消息后,該條消息對隊列的其它消費者不可見,防止一條消息同時被多個消費者處理。如果消息處理失敗或者超過不可見時間,消息可被其它消費者重新接收消費。
隊列屬性
定義:隊列的名稱,用于標識隊列,集群內全局唯一。
取值:120個字符以內,必須以英文字母或者數字開頭,剩余名稱可以是英文、數字、短劃線(-)。
定義:隊列的MaxMessageSize屬性, 限定允許發送到該隊列的消息體的最大長度。單位:KB。
取值:1~64 KB。
定義:隊列的PollingWaitSeconds屬性,設為0時會關閉長輪詢;當不為0時,長輪詢模式開啟,此時一個消息消費請求只會在取到有效消息或長輪詢超時后才返回響應。單位:秒。
取值:0~30秒。
定義:隊列的VisibilityTimeout屬性,消息從本隊列中取出后會被從Active可取狀態變成Inactive隱藏狀態,該屬性指定了消息隱藏狀態的持續時間,這個時間到達后如果消息未被客戶端確認消費成功,消息會從Inactive隱藏狀態恢復成Active可取狀態,此時可能造成重復投遞,業務需要根據實際的消息處理耗時合理設置該屬性。單位:秒。
取值:1~43200秒,即1秒至12小時。
定義:隊列的MessageRetentionPeriod屬性,消息在本隊列中最長的保存時間,即從發送到該隊列開始到此參數指定的時間結束,不論消息是否被取出過都將被刪除。單位:秒。
取值:60~604800秒,即1分鐘至7天。
定義:隊列的DelaySeconds屬性,發送到本隊列的所有消息默認將以本參數指定的時間被延后消費。單位:秒。
取值:0~604800秒,即0秒至7天。
定義:開啟日志功能后,SMQ將自動推送該隊列的操作日志到指定的LoggingBucket中。然后您可以通過日志查看消息軌跡,消息延遲以及其他信息。更多信息,請參見日志管理。
取值:true/false。
使用限制
限制項 | 限制值 | 說明 |
命名長度 | 120字符 | 超過該限制,隊列創建失敗。 |
隊列數量 | 1000個 | 無 |
消息大小 | 64 KB | 超過該限制,消息會被丟棄。 |
批量接口 | 16條 | 無 |
長輪詢 | 30秒 | 無 |
消息保存時間 | 7天 | 超過時間將自動滾動刪除,建議按照需求設置。 |