騰訊云消息隊列(Cloud Message Queue,CMQ)是一種分布式消息隊列服務(wù),它能夠提供可靠的基于消息的異步通信機(jī)制,能夠?qū)⒎植际讲渴鸬牟煌瑧?yīng)用(或同一應(yīng)用的不同組件)之間的收發(fā)消息,存儲在可靠有效的 CMQ 隊列中,防止消息丟失。CMQ 支持多進(jìn)程同時讀寫,收發(fā)互不干擾,無需各應(yīng)用或組件始終處于運行狀態(tài)。
功能
騰訊云消息隊列提供可靠的異步通信機(jī)制,致力于支持用戶業(yè)務(wù)異步的消息服務(wù)。
異步通信協(xié)議
消息的發(fā)送者將消息發(fā)送到消息隊列后可以立即返回,不用等待接收者的響應(yīng)。消息會被保存在隊列中,直到被接收者取出。消息的發(fā)送與處理是完全異步的。
提高可靠性
傳統(tǒng)模式下消息可能因為長時間等待而導(dǎo)致請求失敗。消息隊列模式下,如果發(fā)送消息時接收者不可用,消息隊列會保留消息直到成功傳遞它。
進(jìn)程解耦
消息隊列幫助減少兩個進(jìn)程間的耦合度。只要消息格式不變,即使接收者的接口、位置或者配置改變,也不會給發(fā)送者帶來任何改變。并且,消息發(fā)送者無需知道消息接收者是誰,使得系統(tǒng)設(shè)計更清晰;相反的,進(jìn)程間使用遠(yuǎn)程過程調(diào)用(RPC)或者socket連接,當(dāng)一方接口、ip或端口改變了,另一方則必須修改請求配置。
消息路由
發(fā)送者無需與接收者建立直接連接,雙方通過消息隊列保證消息能夠從發(fā)送者路由到接收者,甚至對于本來網(wǎng)絡(luò)不易互通的兩個服務(wù),也可以提供消息路由。
多終端
用戶的多個業(yè)務(wù)終端之間可以同時發(fā)送或接收消息,騰訊云 CMQ 通過消息狀態(tài)來進(jìn)行消息可用性的控制。
多樣性
每個隊列均可獨立配置,并非所有隊列都要完全相同。在不同業(yè)務(wù)場景下的隊列可以進(jìn)行個性化的配置,例如一個隊列中消息處理時間較長,可以針對隊列屬性進(jìn)行優(yōu)化。