全部產品
Search
文件中心

Simple Message Queue (formerly MNS):隊列(Queue)

更新時間:Sep 03, 2024

本文介紹Simple Message Queue (formerly MNS)中隊列(Queue)的定義、模型關係、隊列屬性及使用限制。

定義和模型關係

Simple Message Queue (formerly 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天

超過時間將自動滾動刪除,建議按照需求設定。