400-8010-352

消息服務 CMQ

騰訊云消息服務(Cloud Message Queue)是分布式消息隊列服務,能夠為分布式部署的不同應用之間或者一個應用的不同組件之間,提供基于消息的可靠的異步通信機制,消息被存儲在高可靠、高可用的CMQ隊列中,多進程可以同時讀寫,互不干擾。
客戶案例了解更多
產品概述
優勢 騰訊云消息服務 開源消息中間件軟件
高性能

兼顧性能與可靠性,單 CMQ 集群 QPS 超過10萬。

數據可靠性與性能無法兼顧。

高擴展性

隊列數量及隊列存儲容量可擴展性強;

底層系統根據業務規模自動彈性伸縮,上層業務無感知;

支持無限數量的消息服務,隨時讀取和寫入無限數量的消息;

迭代一提供北京、上海、廣州地域的多地域服務。

隊列數量和消息堆積數量有限;

每個 IDC 機房必須重新部署購買并部署設備,非常繁瑣。

高可靠性

基于騰訊自研 CRMQ(Cloud Reliable Message Queue)分布式框架,已在騰訊內部業務如 QQ/微信紅包、彩票等業務上得到廣泛使用;

消息服務每條消息在返回給用戶寫成功之時就確保數據已被復制3份寫到不同物理機上,并且后臺數據復制機制保證任何一臺物理機故障時其上的數據能夠快速遷移,時刻保證用戶數據3份副本可用,可靠性達99.999999%;

采用 Raft 一致性算法,保證數據強一致性。

數據單機或簡單主從結構,存在數據單點問題,一旦丟失不可回溯;

開源的 replicia 算法,在集群新增、刪除服務器節點時,會引發全局的數據重新均衡,引起可用性急劇下降;

如 Kafka 使用異步刷盤方式,異步 replication,無法保證數據強一致性。

業務安全

多緯度的安全防護和防 DDoS 攻擊服務;

提供了身份驗證機制,確保 CMQ 隊列中的消息受到保護,防止未經授權的訪問;

支持跨服務商間安全的消息服務。

安全防護功能有限;

考慮到公網的網絡威脅,常常無法提供跨地域、跨 IDC 的公網服務。

便宜

無前期費用或固定開支,通過 CMQ 發送消息只會收取少量的單次請求處理費和數據傳輸費(2元/百萬次請求)。

需要前期投入大量的固定設備用于業務部署。

產品功能
  • 入門說明
  • 隊列模型(Queue)
  • 主題模型(Topic)
  • 異步的通信協議

    騰訊云消息服務提供異步的通信協議。消息的發送者將消息發送到消息隊列后可以立即返回,不用等待接收者的響應,消息會被保存在隊列中,直到被接收者取出。

    保證消息的傳遞

    如果發送消息時接收者不可用,消息隊列會保留消息,直到成功地傳遞它。

    解耦

    騰訊云消息服務降低了兩個進程間的耦合度。只要消息格式不變,即使接收者的接口、位置或者配置改變,也不會給發送者帶來任何改變;而且,消息發送者無需知道消息接收者是誰,使得系統設計更清晰;相反的,例如,遠程過程調用(RPC)或者服務間通過 socket 建立連接,如果對方接口改變了或者對方 IP/端口改變了,那么另一方需要改寫代碼或者改寫配置。

    提供路由

    發送者無需與接收者建立連接,雙方通過消息隊列保證消息能夠從發送者路由到接收者,甚至對于本來網絡不易互通的兩個服務,也可以提供消息路由。

  • 消息推拉模式

    PULL

    豐富的隊列功能

    CMQ 提供了豐富的隊列屬性配置選項,您可以個性化配置隊列屬性來滿足不同的應用場景,支持多次消費、批量發送消費、重試策略配置等。

    支持并發訪問

    支持多個生產者和消費者并發訪問同一個隊列,無需特殊設置即可自由調整并發度,并能確保某條消息在取出之后的特定時間段內,無法被其他消費者獲得。

    消息并發發送及接收

    支持批量并發發送和接收消息,提升業務的吞吐性能。

    消息投遞保障

    在消息有效期內,確保消息至少能被成功消費一次。用戶間資源隔離,確保您隊列中的消息不會被非法獲取。

    支持多次消費

    若應用程序在處理消息的過程中由于斷電等原因處理失敗,可多次重試。

  • 消息推拉模式

    PUSH

    一對多消息投遞

    一條通知消息可以同時被多個訂閱者訂閱和消費,支持將某 Queue 設為訂閱者。

    多種投遞方式

    支持 HTTP/HTTPS 等多種投遞方式。

    消息過濾

    可根據消息 TAG、訂閱者 TAG 進行消費過濾,增加消費靈活性 。

    消息投遞保障

    在消息有效期內,保證發布到 Topic 中的消息會按照指定的重試策略,進行多次重試投遞,盡可能保證業務成功接收消息。

入門場景
  • 系統解耦
  • 削峰填谷
  • 消息復用
  • 免費API
  • 數據交換
  • 系統解耦

    緊耦合系統中,消費者出現任何問題(升級停服、宕機、不可用等),都會影響生產者的業務;

    使用CMQ提供的松耦合服務,生產者無需了解消費者,消費者無需關心生產者,系統很方便地做到異步化。

  • 削峰填谷

    對于突發流量,數據可先堆積在CMQ server,消費者按照實際能力來消費,防止雪崩效應和消息丟失。

  • 消息復用

    數據生產一次并堆積到CMQ server,不同消費場景可多次復用。例如訂單數據生產一次,邏輯、業務、計費、監控、統計模塊都可以消費。

  • 免費API

    CMQ屏蔽了不同平臺、不同編程語言的差異,提供標準API接入,使系統之間的數據交互變得非常簡單。

  • 數據交換

    CMQ還支持機房的數據交換能力,無需打通企業A和B的內網,公司內部局域網也無須暴露在公網環境下,即可輕松實現企業A向企業B數據交換及同步。

產品架構
  • 支持春晚紅包
  • 海量數據處理
  • 在線圖片處理
  • 架構說明

    紅包海量并發處理的場景下,若使用傳統的事務處理方式,紅包拆取失敗時回滾且頻繁輪詢數據庫,將會給系統造成并發壓力甚至系統崩潰。微信紅包系統引入了騰訊云CMQ,有效避免了分布式事務增加對系統所造成的開銷。

    以A用戶向B用戶發送10元紅包為例。

    定義三種角色:紅包發送系統、CMQ紅包隊列、紅包接收系統

    • 紅包發送系統執行:讀取A賬戶余額、A賬戶減去10元、結果寫回A賬戶
    • 紅包接收系統執行:讀取B賬戶余額、拆取紅包讀取數值、B賬戶增加10元、結果寫到B賬戶
    • B賬戶更新余額失敗時,紅包入賬失敗的請求將轉入CMQ,而手機客戶端顯示等待狀態。賬戶系統將不斷從CMQ拉取并重試此更新操作,直至紅包金額被取出,從而保證紅包入賬永不丟失。

    CMQ消息隊列保證了紅包消息的可靠存儲、傳遞,實時寫三份保證數據不丟。資金入賬失敗時可多次重試,避免失敗回滾和頻繁輪詢數據庫等傳統方式的弊端。

  • 架構說明

    大數據入門的第一步,就是對海量數據進行挖掘分析,提煉有價值的結果,引導未來的商業模型。

    大眾點評、滴滴打車等企業在騰訊云已有深度的實踐。

    在數據處理的場景中,消息生產者是海量日志數據的輸入,在線分析的Storm集群是消費者。從經驗來看,消息消費端Storm處理消息的業務邏輯可能很復雜(涉及到實時計算、數據流式處理、Topology的數據處理);且消息消費端Storm出現故障的概率較高,這種情況會導致短暫時間內無法消費或消費不暢。

    Push方式下,由于無法得知當前消息消費者的狀態,所以只要有數據產生便會不斷進行推送。在Storm集群處于高負載時,使用Push的方式可能會導致消息消費者的負載進一步加重,甚至崩潰。

    騰訊云CMQ提供PULL/PUSH兩種數據獲取方式,消費者可用并且準備好時才允許讀取數據,為消息生產者與消息消費者之間加了一層緩沖區,緩解消息生產者與消息消費者之間不同步問題。

  • 架構說明

    某美圖公司在騰訊云搭建了在線圖片處理服務,該服務可以讓用戶上傳照片,并指定需要對這些照片執行的操作,比如裁剪、生成縮略圖等。用戶上傳圖片后,提交任務,然后等待圖片處理完,下載處理后的圖片。不同的操作會耗費不同的處理時間,從幾秒到幾分鐘不等,而且用戶可能一次上傳幾張也可能是幾十張甚至幾百張圖片,所以總的處理時間就與上傳的圖片數量、圖片大小以及用戶選擇的操作有關。

    利用CMQ實現上述需求,用戶的圖片存儲在騰訊云存儲中(CBS/COS等),用戶的每一個操作請求都會作為一個消息存入請求隊列(Request Queue)中,消息內容為圖片索引,由圖片名稱+用戶請求的操作類型+圖片存儲的位置索引key等組成。

    運行在CVM的圖片處理服務,從Request Queue中獲取消息(圖片索引),圖片處理服務器從云端下載數據,并進行圖片編輯,完畢后把處理結果發送到結果隊列(Response Queue),結果圖片存儲到云存儲中。

超預云服務器

為企業提供:騰訊云服務器/視頻/游戲/微信開發/軟件/網站/APP…云解決方案

  • QQ群咨詢:212197992 咨詢電話:4008010352
  • 技術支持:021-60169696 13248283855
  • 產品咨詢:021-60169693 18521370613
  • 華北:
  • 華東:
  • 華南:

咨詢電話:400-8010-352

超預云服務器微信
400-8010-352
西甲历史射手榜