功能與特性概述
本文列舉云消息隊(duì)列 RocketMQ 版所支持的所有功能與特性。
概覽
云消息隊(duì)列 RocketMQ 版在阿里云多個(gè)地域(Region)提供了高可用消息云服務(wù)。單個(gè)地域內(nèi)采用多機(jī)房部署,可用性極高,即使整個(gè)機(jī)房都不可用,仍然可以為應(yīng)用提供消息發(fā)布服務(wù)。
云消息隊(duì)列 RocketMQ 版提供TCP和HTTP協(xié)議的多語(yǔ)言接入方式,方便不同編程語(yǔ)言開(kāi)發(fā)的應(yīng)用快速接入云消息隊(duì)列 RocketMQ 版消息云服務(wù)。您可以將應(yīng)用部署在阿里云ECS、企業(yè)自建云,或者嵌入到移動(dòng)端、物聯(lián)網(wǎng)設(shè)備中與云消息隊(duì)列 RocketMQ 版建立連接進(jìn)行消息收發(fā);同時(shí),本地開(kāi)發(fā)者也可以通過(guò)公網(wǎng)接入云消息隊(duì)列 RocketMQ 版服務(wù)進(jìn)行消息收發(fā)。
多協(xié)議接入
TCP協(xié)議:區(qū)別于HTTP簡(jiǎn)單的接入方式,提供更為專(zhuān)業(yè)、可靠、穩(wěn)定的TCP協(xié)議的SDK接入服務(wù)。支持的語(yǔ)言包括Java、C/C++ 以及.NET。
HTTP協(xié)議:采用RESTful風(fēng)格,方便易用,快速接入,跨網(wǎng)絡(luò)能力強(qiáng)。支持Java、C++、.NET、Go、Python、Node.js和PHP七種語(yǔ)言客戶端。
管理工具
Web控制臺(tái):支持通過(guò)控制臺(tái)完成資源管理、消息查詢、消息軌跡查詢、監(jiān)控報(bào)警管理等操作。具體操作,請(qǐng)參見(jiàn)控制臺(tái)使用指南。
OpenAPI:提供開(kāi)放的API便于將云消息隊(duì)列 RocketMQ 版管理工具集成到自己的控制臺(tái)。云消息隊(duì)列 RocketMQ 版的API的更多信息,請(qǐng)參見(jiàn)OpenAPI參考。
消息類(lèi)型列表
普通消息
消息隊(duì)列RocketMQ版中無(wú)特性的消息,區(qū)別于有特性的定時(shí)和延時(shí)消息、順序消息和事務(wù)消息。
定時(shí)和延時(shí)消息
允許消息生產(chǎn)者對(duì)指定消息進(jìn)行定時(shí)(延時(shí))投遞,最長(zhǎng)支持40天。
順序消息
允許消息消費(fèi)者按照消息發(fā)送的順序?qū)ο⑦M(jìn)行消費(fèi),順序消息包括全局順序消息和分區(qū)順序消息。
事務(wù)消息
實(shí)現(xiàn)類(lèi)似XA或Open XA的分布事務(wù)功能,以達(dá)到事務(wù)最終一致性狀態(tài)。
表 1. 消息類(lèi)型對(duì)比
消息類(lèi)型 | 是否支持可靠同步發(fā)送 | 是否支持可靠異步發(fā)送 | 是否支持Oneway發(fā)送 | 是否支持多線程發(fā)送 | 性能 |
普通消息 | 是 | 是 | 是 | 是 | 最高 |
事務(wù)消息 | |||||
定時(shí)和延時(shí)消息 | |||||
分區(qū)順序消息 | 是 | 否 | 否 | 否 | 高 |
全局順序消息 | 一般 |
消息特性
消息重試:在消費(fèi)者返回消息重試的響應(yīng)后,云消息隊(duì)列 RocketMQ 版會(huì)按照相應(yīng)的重試規(guī)則進(jìn)行消息重投。
至少投遞一次(At-least-once):云消息隊(duì)列 RocketMQ 版保證消息成功被消費(fèi)一次。云消息隊(duì)列 RocketMQ 版的分布式特點(diǎn)和瞬變的網(wǎng)絡(luò)條件,或者用戶應(yīng)用重啟發(fā)布的情況下,可能導(dǎo)致消費(fèi)者收到重復(fù)的消息。開(kāi)發(fā)人員應(yīng)將其應(yīng)用程序設(shè)計(jì)為多次處理一條消息不會(huì)產(chǎn)生任何錯(cuò)誤或不一致性。消息冪等最佳實(shí)踐請(qǐng)參見(jiàn)消息冪等。
消息過(guò)濾:云消息隊(duì)列 RocketMQ 版支持設(shè)置消息屬性給消息進(jìn)行分類(lèi),云消息隊(duì)列 RocketMQ 版服務(wù)端會(huì)根據(jù)您訂閱消息時(shí)設(shè)置的過(guò)濾條件對(duì)消息進(jìn)行過(guò)濾,您將只消費(fèi)到需要關(guān)注的消息。
消息功能
消息查詢:云消息隊(duì)列 RocketMQ 版提供了三種消息查詢的方式,分別是按Message ID、Message Key以及Topic查詢。
查詢消息軌跡:通過(guò)消息軌跡,能清晰定位消息從生產(chǎn)者發(fā)出,經(jīng)由云消息隊(duì)列 RocketMQ 版服務(wù)端,投遞給消息消費(fèi)者的完整鏈路,方便定位排查問(wèn)題。
集群消費(fèi)和廣播消費(fèi):當(dāng)使用集群消費(fèi)模式時(shí),云消息隊(duì)列 RocketMQ 版認(rèn)為任意一條消息只需要被消費(fèi)者集群內(nèi)的任意一個(gè)消費(fèi)者處理即可;當(dāng)使用廣播消費(fèi)模式時(shí),云消息隊(duì)列 RocketMQ 版會(huì)將每條消息推送給消費(fèi)者集群內(nèi)所有注冊(cè)過(guò)的消費(fèi)者,保證消息至少被每臺(tái)機(jī)器消費(fèi)一次。
重置消費(fèi)位點(diǎn):根據(jù)時(shí)間或位點(diǎn)重置消費(fèi)進(jìn)度,允許用戶進(jìn)行消息回溯或者跳過(guò)堆積的消息從最新位點(diǎn)消費(fèi)。
死信隊(duì)列:將無(wú)法正常消費(fèi)的消息儲(chǔ)存到特殊的死信隊(duì)列,以供后續(xù)處理。
儀表盤(pán):提供豐富、全面、多維度的統(tǒng)計(jì)指標(biāo),您可以分別從實(shí)例、Topic和Group維度查看消息生產(chǎn)指標(biāo)、消息消費(fèi)指標(biāo)以及消息堆積等相關(guān)指標(biāo)。
監(jiān)控報(bào)警:您可使用云消息隊(duì)列 RocketMQ 版提供的監(jiān)控報(bào)警功能,監(jiān)控某Group ID訂閱的某Topic的消息消費(fèi)狀態(tài)并接收?qǐng)?bào)警短信,幫助您實(shí)時(shí)掌握消息消費(fèi)狀態(tài),以便及時(shí)處理消費(fèi)異常。
高級(jí)特性
全球消息路由:用于全球不同地域之間的消息同步,保證地域之間的數(shù)據(jù)一致性。