入門說明 |
異步的通信協議 億騰消息服務提供異步的通信協議。消息的發送者将消息發送到消息隊列後可以立即返回,不用等待接收者的響應,消息會被保存在隊列中(zhōng),直到被接收者取出。 保證消息的傳遞 如果發送消息時接收者不可用,消息隊列會保留消息,直到成功地傳遞它。 解耦 億騰消息服務降低了兩個進程間的耦合度。隻要消息格式不變,即使接收者的接口、位置或者配置改變,也不會給發送者帶來任何改變;而且,消息發送者無需知(zhī)道消息接收者是誰,使得系統設計更清晰;相反的,例如,遠程過程調用(RPC)或者服務間通過 socket 建立連接,如果對方接口改變了或者對方 IP/端口改變了,那麽另一(yī)方需要改寫代碼或者改寫配置。 提供路由 發送者無需與接收者建立連接,雙方通過消息隊列保證消息能夠從發送者路由到接收者,甚至對于本來網絡不易互通的兩個服務,也可以提供消息路由。 |
隊列模型 |
消息推拉模式 PULL 豐富的隊列功能 CMQ 提供了豐富的隊列屬性配置選項,您可以個性化配置隊列屬性來滿足不同的應用場景,支持多次消費(fèi)、批量發送消費(fèi)、重試策略配置等。 支持并發訪問 支持多個生(shēng)産者和消費(fèi)者并發訪問同一(yī)個隊列,無需特殊設置即可自由調整并發度,并能确保某條消息在取出之後的特定時間段内,無法被其他消費(fèi)者獲得。 消息并發發送及接收 支持批量并發發送和接收消息,提升業務的吞吐性能。 消息投遞保障 在消息有效期内,确保消息至少能被成功消費(fèi)一(yī)次。用戶間資(zī)源隔離(lí),确保您隊列中(zhōng)的消息不會被非法獲取。 支持多次消費(fèi) 若應用程序在處理消息的過程中(zhōng)由于斷電等原因處理失敗,可多次重試。 |
主題模型 |
消息推拉模式 PUSH 一(yī)對多消息投遞 一(yī)條通知(zhī)消息可以同時被多個訂閱者訂閱和消費(fèi),支持将某 Queue 設爲訂閱者。 多種投遞方式 支持 HTTP/HTTPS 等多種投遞方式。 消息過濾 可根據消息 TAG、訂閱者 TAG 進行消費(fèi)過濾,增加消費(fèi)靈活性 。 消息投遞保障 在消息有效期内,保證發布到 Topic 中(zhōng)的消息會按照指定的重試策略,進行多次重試投遞,盡可能保證業務成功接收消息。 |
隊列數量及隊列存儲容量可擴展性強;底層系統根據業務規模,自動彈性伸縮,上層業務無感知(zhī);高效支持億級消息收發、推送,堆積,容量不設上線;提供北(běi)京、上海、廣州地域的多地域服務。
消息服務每條消息在返回給用戶寫成功之時就确保數據已被複制3份寫到不同物(wù)理機上,并且後台數據複制機制能夠保證任何一(yī)台物(wù)理機故障時其上的數據能夠快速的做遷移,時刻保證用戶數據3份 copy 可用,可靠性達99.999999%。
多緯度的安全防護和防DDoS攻擊服務;每個消息服務提供單獨命名空間,客戶間數據嚴格隔離(lí);支持HTTPS訪問;支持跨地域的安全消息服務。
紅包系統的分(fēn)布式事務性的問題讓大(dà)家很頭痛,微信架構組在紅包系統引入了 CMQ,避免分(fēn)布式事務增加對系統的開(kāi)銷。CMQ 紅包隊列,保證了紅包消息的可靠存儲、傳遞,實時落盤寫三份保證數據不丢。資(zī)金入賬失敗時可多次重試,避免入賬失敗後 rollback 回寫和頻(pín)繁輪詢 DB。