精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

RocketMQ-Streams架構(gòu)設(shè)計淺析

精選
開發(fā) 架構(gòu)
本期將帶領(lǐng)大家從源碼的角度,解析RocketMQ-Streams的構(gòu)建,數(shù)據(jù)流轉(zhuǎn)過程。也會討論RocketMQ-Streams是如何實現(xiàn)故障恢復(fù)和擴縮容的。

作者 |倪澤

RocketMQ-Streams 是一款輕量級流處理引擎,應(yīng)用以SDK 的形式嵌入并啟動,即可進行流處理計算,不依賴于其他組件,最低1核1G可部署,在資源敏感場景具有很大優(yōu)勢。同時它支持 UTF/UTAF/UTDF 多種計算類型。目前已經(jīng)廣泛運用于安全,風(fēng)控,邊緣計算等場景。

本期將帶領(lǐng)大家從源碼的角度,解析RocketMQ-Streams的構(gòu)建,數(shù)據(jù)流轉(zhuǎn)過程。也會討論RocketMQ-Streams是如何實現(xiàn)故障恢復(fù)和擴縮容的。

一、使用示例

代碼示例:

public class RocketMQWindowExample {
public static void main(String[] args) {
DataStreamSource source = StreamBuilder.dataStream("namespace", "pipeline");
source.fromRocketmq(
"topicName",
"groupName",
false,
"namesrvAddr")
.map(message -> JSONObject.parseObject((String) message))
.window(TumblingWindow.of(Time.seconds(10)))
.groupBy("groupByKey")
.sum("字段名", "輸出別名")
.count("total")
.waterMark(5)
.setLocalStorageOnly(true)
.toDataSteam()
.toPrint(1)
.start();

}

}

pom文件依賴:

<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-streams-clients</artifactId>
<version>1.0.1-preview</version>
</dependency>

上述代碼是一個簡單的使用例子,它主要的功能是從RocketMQ中指定topic讀取數(shù)據(jù),經(jīng)過轉(zhuǎn)化成JSON格式,以groupByKey字段值分組、10秒一個窗口,對OutFlow字段值進行累加,結(jié)果輸出到total字段,并打印到控制臺上。上述計算中還允許輸入亂序5秒,即窗口時間到達后不會馬上觸發(fā),而是會等待5s,如果這個段時間內(nèi),有窗口數(shù)據(jù)到達依然有效。上述setLocalStorageOnly為true表示不對狀態(tài)進行遠程存儲,僅使用RocksDB做本地存儲。目前1.0.1的RocketMQ-Streams版本依然使用Mysql作為遠程狀態(tài)存儲,下一版本將使用RocketMQ作為遠程狀態(tài)存儲。

二、RocketMQ總體架構(gòu)圖

RocketMQ-Streams 作為輕量流處理引擎,本質(zhì)上是作為RocketMQ 的客戶端消費數(shù)據(jù),一個流處理實例可以處理多個隊列,而一個隊列只能被一個實例消費。若干RocketMQ-Streams 實例組成消費者組共同消費數(shù)據(jù),通過擴容實例達到增加處理能力的消費,減少實例則會發(fā)生rebalance,消費的隊列自動重平衡到其他消費實例上。從上述圖中,我們還可以看出計算實例間不需要直接交換任何數(shù)據(jù),可各自獨立完成所有計算處理。這種架構(gòu)簡化了RocketMQ-Streams 本身的設(shè)計,同時也可非常方便的進行實例擴縮容。

處理拓?fù)?/h4>

處理器拓?fù)錇閼?yīng)用定義了流處理過程的計算邏輯,它由一系列的處理器節(jié)點和數(shù)據(jù)流向組成。例如,在開頭的代碼示例中,整個處理拓?fù)溆蓅ource、map、groupBy、sum、count、print等處理節(jié)點組成。有兩種特殊的處理節(jié)點:

  • source節(jié)點

他沒有任何上游節(jié)點,從外部讀入數(shù)據(jù)到RocketMQ-Streams,并交由下游處理。

  • sink節(jié)點

他沒有任何下游節(jié)點,他將處理后的數(shù)據(jù)寫出到外部。

處理拓?fù)鋬H僅是流處理代碼的邏輯抽象,在流計算啟動時將會被實例化。為了設(shè)計簡單,目前一個流處理實例中僅有一張計算拓?fù)洹?/p>

在所有流處理算子之中,有兩種特別的算子,一種是涉及數(shù)據(jù)分組的算子groupBy,另一種是有狀態(tài)計算例如count等。這兩種算子會影響整個計算拓?fù)涞臉?gòu)建,下面將具體分析RocketMQ-Streams是如何處理他們的。

groupBy

分組算子groupBy特殊是因為經(jīng)過groupBy操作,后續(xù)算子期望對相同key的數(shù)據(jù)進行操作,例如經(jīng)過groupBy("年級")之后再進行sum就是對按照年級分組求和,這就要求需要將具有相同“年級”的數(shù)據(jù)重新路由到一個流計算實例上處理,如果不這樣做,每個實例上得出的結(jié)果都將是不完整的,整體輸出結(jié)果也將是錯誤的。

RocketMQ-Streams 采用 shuffle topic 這種方式來處理。具體說來,計算實例將groupBy數(shù)據(jù)重新發(fā)回RocketMQ的一個topic,并且在發(fā)回過程中按照key的hash值來選擇目標(biāo)隊列,再從這個topic讀取數(shù)據(jù)進行后續(xù)流處理。按照key hash后相同的key一定在一個隊列里面,而一個隊列只會被一個流處理實例消費,這樣就達到相同key被路由到一個實例上處理的效果。

有狀態(tài)算子

有狀態(tài)算子與無狀態(tài)算子相對。如果計算結(jié)果只與當(dāng)前輸入有關(guān),和上一次輸入無關(guān)就是無狀態(tài)算子,例如filter、map、foreach結(jié)果只與當(dāng)前輸入有關(guān)系。還有一種算子的輸出結(jié)果不僅與當(dāng)前算子有關(guān)系還與上一次輸入有關(guān),例如sum,需要對一段時間內(nèi)輸入進行求和,他就是有狀態(tài)算子。

RocketMQ-Streams利用RocksDB作為本地存儲,Mysql作為遠程存儲來保存狀態(tài)數(shù)據(jù)。他具體做法是:

當(dāng)發(fā)現(xiàn)消息來自新的隊列時,檢查是否需要加載狀態(tài),如果需要異步加載狀態(tài)到RocksDB。

數(shù)據(jù)到達有狀態(tài)算子時,如果加載完成使用RocksDB中狀態(tài)進行計算,如果沒有,使用Mysql中狀態(tài)計算。

計算完成后,將狀態(tài)數(shù)據(jù)保存到RocksDB和Mysql中。

窗口觸發(fā)后,從RocksDB中查詢出狀態(tài)數(shù)據(jù),并將結(jié)果向下游算子傳遞。

整體數(shù)據(jù)流向圖如下:

三、擴縮容與故障恢復(fù)

擴縮容和故障恢復(fù)是一個硬幣的兩面,即同一個事物的兩種表達,計算集群如果能正確擴縮容就等于具備故障恢復(fù)的能力,反之亦然。通過前面介紹我們知道,RocketMQ-Streams具有非常良好的擴縮容性能,擴容時只需要新部署一個流計算實例即可,縮容時停止計算實例即可。對于無狀態(tài)的計算來說比較簡單,擴容后,數(shù)據(jù)計算不需要之前的狀態(tài)。有狀態(tài)計算的擴縮容涉及到狀態(tài)的遷移。有狀態(tài)的擴縮容可由下圖表示:

當(dāng)計算實例從3個縮容到2個,借助于RocketMQ的rebalance,MQ會在計算實例之間重新分配。

Instance1上消費的MQ2和MQ3被分配到Instance2和Instance3上,這兩個MQ的狀態(tài)數(shù)據(jù)也需要遷移到Instance2和Instance3上,這也暗示,狀態(tài)數(shù)據(jù)是根據(jù)源數(shù)據(jù)分片保存的;擴容則是剛好相反的過程。

具體實現(xiàn)上,RocketMQ-Streams采用系統(tǒng)消息來觸發(fā)狀態(tài)的加載和持久化。

系統(tǒng)消息類別:

//新增消費隊列
NewSplitMessage

//不在消費某個隊列
RemoveSplitMessage

//客戶端持久化消費位點到MQ
CheckPointMessage

當(dāng)發(fā)現(xiàn)消息來自一個新的RocketMQ隊列(MessageQueue),RocketMQ-Streams之前沒有處理過來自該隊列的消息,會先于數(shù)據(jù)前發(fā)送NewSplitMessage消息,通過處理拓?fù)湎掠嗡阕觽鬟f,當(dāng)有狀態(tài)算子收到該消息時會將新增隊列對應(yīng)的狀態(tài)加載到本地內(nèi)存RocksDB中,當(dāng)數(shù)據(jù)真正到達時,就根據(jù)這個狀態(tài)繼續(xù)計算。

當(dāng)因為計算實例增加或者RocketMQ集群變動,rebalance后,計算實例不再消費某個隊列(MessageQueue)時,會發(fā)出RemoveSplitMessage消息,有狀態(tài)算子刪除本地RocksDB中的狀態(tài)。

CheckPointMessage是一種特別的系統(tǒng)消息,他的作用與實現(xiàn)exactly-once有關(guān)。我們在擴縮容過程中需要做到exactly-once,才能保證擴縮容或故障恢復(fù)對計算結(jié)果沒有影響。RocketMQ-streams向broker提交消費offset前會產(chǎn)生CheckPointMessage消息,向下游拓?fù)鋫鬟f,他將保證即將提交消費位點的所有消息都已經(jīng)被sink處理掉。

開源地址:

RocketMQ-Streams 倉庫地址:

https://github.com/apache/rocketmq-streams

RocketMQ 倉庫地址:

https://github.com/apache/rocketmq

作者:倪澤,RocketMQ 資深貢獻者, RocketMQ-Streams 維護者之一,阿里云技術(shù)專家。

責(zé)任編輯:武曉燕 來源: 阿里巴巴中間件
相關(guān)推薦

2010-07-14 09:01:07

架構(gòu)設(shè)計

2020-04-22 14:25:48

云開發(fā)高可用架構(gòu)

2013-05-27 10:58:28

Tumblr架構(gòu)設(shè)計雅虎收購

2015-06-02 04:17:44

架構(gòu)設(shè)計審架構(gòu)設(shè)計說明書

2025-04-15 04:00:00

2025-05-09 08:45:13

2023-07-05 08:00:52

MetrAuto系統(tǒng)架構(gòu)

2015-06-02 04:34:05

架構(gòu)設(shè)計

2009-07-10 09:31:57

MyEclipse U

2021-07-21 16:30:38

iOSAPP架構(gòu)

2024-08-18 14:09:24

2017-11-17 07:06:27

互聯(lián)網(wǎng)分層架構(gòu)APP

2012-09-19 13:46:37

存儲存儲設(shè)計快速表態(tài)

2013-09-02 17:46:41

MVC架構(gòu)設(shè)計MVC架構(gòu)設(shè)計

2019-11-25 10:58:19

Tomcat架構(gòu)Web

2021-10-28 06:17:46

架構(gòu)設(shè)計組件

2012-06-07 10:45:12

軟件架構(gòu)設(shè)計原則

2009-02-01 10:17:19

Java架構(gòu)設(shè)計設(shè)計模式

2023-05-12 08:06:46

Kubernetes多云架構(gòu)

2024-04-17 08:03:45

架構(gòu)設(shè)計Java
點贊
收藏

51CTO技術(shù)棧公眾號

日韩中文字幕有码| 97视频久久久| 亚洲h视频在线观看| 国产日韩欧美三级| 中文精品99久久国产香蕉| 亚洲AV成人精品| 桃子视频成人app| 亚洲欧美偷拍卡通变态| 久久视频在线观看中文字幕| 亚洲专区在线播放| 在线亚洲欧美| 欧美成人免费小视频| jizz欧美性20| 欧美视频二区欧美影视| 色视频一区二区| www.欧美黄色| 在线国产91| 99久久久国产精品免费蜜臀| 国产一区二区香蕉| 二区视频在线观看| 国产精品大片免费观看| 亚洲毛片在线免费观看| 亚洲精品乱码久久久久久9色| 欧美xxxx做受欧美护士| 亚洲大片在线观看| 99亚洲精品视频| 成年网站在线| 久久久噜噜噜久久人人看 | 日本在线视频免费观看| 五月开心六月丁香综合色啪 | 成人国产1314www色视频| 精品黑人一区二区三区| 亚洲精品1区| 久久亚洲精品小早川怜子66| 精品人妻无码一区| 亚洲人成网站77777在线观看| 精品国产一区二区国模嫣然| 国产精品久久久久久久99| 无人区在线高清完整免费版 一区二| 亚洲一区二区三区在线播放| 午夜啪啪福利视频| 日本在线观看免费| 国产精品视频一二三区| 欧美精品一区二区三区四区五区| 国产91久久久| 国产91高潮流白浆在线麻豆| 99久久99| 国产77777| 成人午夜视频网站| 成人永久免费| 手机看片一区二区三区| 成人av网在线| 国产在线一区二区三区四区| 天天av天天翘| 久久久久亚洲综合| 日韩三级电影免费观看| 成年午夜在线| 中文字幕欧美一区| 国产欧美综合一区| 久草在线新免费首页资源站| 亚洲国产色一区| 国产视频一视频二| 在线视频超级| 在线观看日产精品| 亚洲精品免费一区亚洲精品免费精品一区| 国产91在线播放精品| 欧美视频你懂的| 在线黄色免费看| 欧美一区一区| 精品久久五月天| 国产精品久久AV无码| 香蕉久久夜色精品国产更新时间| 亚洲欧洲国产一区| www中文在线| 欧美伊人久久| 7m精品福利视频导航| 中文字幕xxxx| 久久99热国产| 国产a一区二区| 欧美午夜黄色| 国产精品美女久久久久久久网站| 免费观看中文字幕| 日韩伦理在线| 欧美欧美欧美欧美首页| 国产清纯白嫩初高中在线观看性色| 女人抽搐喷水高潮国产精品| 一区二区三区四区在线观看视频 | 亚洲自拍偷拍图区| 妺妺窝人体色www在线小说| 91看片一区| 日韩欧美国产小视频| 性色av蜜臀av色欲av| 日韩成人精品一区| 欧美激情欧美激情| 91麻豆精品在线| 岛国一区二区在线观看| 日韩欧美一区二区三区久久婷婷| 91精品久久| 日韩欧美亚洲一二三区| 伊人成人免费视频| 少妇高潮一区二区三区| 久久手机精品视频| 一级黄色免费网站| 国产精品18久久久久久久久| 久久国产精品-国产精品| 久久精品视频免费看| 色综合中文字幕国产| 中国老熟女重囗味hdxx| 精品一区二区三| 久久久视频在线| 国产精品国产三级国产aⅴ| 久久伊人中文字幕| 亚洲乱码日产精品bd在线观看| 黑人巨大亚洲一区二区久 | 高h视频在线| 亚洲国产视频a| 亚洲综合20p| 精品日本12videosex| 久久久亚洲天堂| 国产免费av电影| 国产精品久久久久毛片软件| 无罩大乳的熟妇正在播放| 日本超碰一区二区| 日韩中文第一页| 日韩精品一区不卡| 99国内精品久久| 蜜臀精品一区二区| 欧美视频二区欧美影视| xvideos亚洲人网站| 亚洲 欧美 成人| gogogo免费视频观看亚洲一| 肉大捧一出免费观看网站在线播放 | 人妻妺妺窝人体色www聚色窝| 中文字幕一区不卡| 亚洲36d大奶网| jlzzjlzz亚洲女人| 日本伊人精品一区二区三区介绍| 刘亦菲久久免费一区二区| 亚洲精品久久7777| 看看黄色一级片| 99久久亚洲精品| 国产日韩av在线播放| av网站大全在线观看| 欧美性视频一区二区三区| www.中文字幕av| 美女久久网站| 日韩欧美国产二区| 色8久久影院午夜场| 亚洲三级免费看| 久久久久久无码精品大片| 久久久不卡网国产精品一区| 免费国产成人av| 欧美精选一区二区三区| 国产精品一区二区三| 日韩伦理在线电影| 欧美一区二区不卡视频| 欧美日韩成人免费观看| 成人网在线免费视频| 久久久久久久久久网| 午夜精品影视国产一区在线麻豆| 国产99视频在线观看| 国产剧情在线观看| 欧美日韩在线观看一区二区 | 欧美日韩影院| 精品一区二区三区国产| 四虎4545www精品视频| 中文字幕一区二区精品| 国内精品久久久久久久久久| 夜色激情一区二区| 黑人巨大精品欧美| 蜜臀久久久99精品久久久久久| 椎名由奈jux491在线播放| 天堂av一区| 欧美一级高清免费播放| melody高清在线观看| 欧美一区二区三区播放老司机| jizz国产免费| 国产精品日产欧美久久久久| 日本黄色www| 99精品国产在热久久婷婷| 视频在线99re| 日本成人精品| 国产成人综合精品| 色呦呦在线资源| 国产一区二区三区18| hs视频在线观看| 欧美性猛交xxxx免费看漫画 | 亚洲第一成人在线| 美国黑人一级大黄| 成人aa视频在线观看| 国产精品拍拍拍| 精品69视频一区二区三区Q| 日本电影一区二区三区| 999国产精品一区| 国产精品成av人在线视午夜片| av电影高清在线观看| 日韩不卡在线观看| 国产人妖在线播放| 在线免费亚洲电影| 日韩欧美中文字幕一区二区| 综合欧美一区二区三区| 国产十八熟妇av成人一区| 久久99国产精品久久| 丰满爆乳一区二区三区| 五月天久久久| 青青草成人激情在线| 911精品国产| 国产精品视频一区二区三区四| 123区在线| 不卡中文字幕av| 国产大学生校花援交在线播放 | 9国产精品视频| 艳母动漫在线免费观看| 国产精品一区高清| 好看的日韩精品视频在线| 国产人与zoxxxx另类91| 国产福利成人在线| 涩涩av在线| 欧美激情视频在线免费观看 欧美视频免费一| 免费在线高清av| 精品国产91久久久久久久妲己 | 国产电影一区二区三区| 超碰在线人人爱| 午夜亚洲一区| 欧美 日韩 国产 高清| 欧美日本一区| 欧美a级黄色大片| 手机在线一区二区三区| 日韩精品久久一区二区三区| 天天躁日日躁成人字幕aⅴ| 国产精品国产精品国产专区蜜臀ah | 欧美精品电影在线播放| 中国精品一区二区| 在线观看精品一区| 潘金莲一级淫片aaaaaa播放| 欧美日韩久久久久| 日韩 国产 在线| 亚洲国产你懂的| 日本一区二区欧美| 精品成人国产在线观看男人呻吟| 国产一级片免费观看| 亚洲超丰满肉感bbw| 久青草免费视频| 五月婷婷久久综合| 中日韩精品视频在线观看| 午夜精品福利一区二区三区蜜桃| 国产在线视频你懂的| 亚洲成va人在线观看| www..com国产| 欧美性感美女h网站在线观看免费| 久久久久久久久影院| 色综合天天在线| 波多野结衣人妻| 欧美日韩美女一区二区| 国产精品久久久久毛片| 日韩美女一区二区三区四区| 亚洲黄色在线播放| 亚洲国产一区二区三区在线观看| 日韩a在线观看| 夜夜嗨av一区二区三区免费区| www.av在线| 操91在线视频| 不卡的av影片| 国产精品av网站| 国产成年精品| 国产精品yjizz| 国产99亚洲| 中文字幕一区二区三区5566| 欧美+日本+国产+在线a∨观看| 精品无码国产一区二区三区av| 亚洲一区欧美激情| 久久99999| 国产精品一区专区| 熟女俱乐部一区二区视频在线| 国产精品污www在线观看| 亚洲欧美一区二区三区四区五区| 亚洲一区二区不卡免费| 69亚洲精品久久久蜜桃小说| 欧美男女性生活在线直播观看| 丰满人妻妇伦又伦精品国产| 亚洲欧美另类中文字幕| 国产超级va在线视频| 97视频在线观看免费高清完整版在线观看 | 欧美体内she精高潮| 91丨九色丨蝌蚪丨老版| 激情五月激情综合| 偷拍亚洲欧洲综合| 一区二区精品视频在线观看| 欧美不卡一二三| 二区在线观看| 久久久久久尹人网香蕉| 成人午夜毛片| 精品伦理一区二区三区| 久久精品久久久| 亚洲爆乳无码专区| 国产激情91久久精品导航| 精品人伦一区二区三电影| 亚洲最大成人网4388xx| 国产免费www| 日韩一区二区高清| 国产女主播在线直播| 久久久噜噜噜久久| 日韩av黄色| 欧美日韩一区综合| 91久久中文| 波多野结衣在线免费观看| 国产亚洲综合性久久久影院| 国产在线一二区| 91精选在线观看| 国产福利电影在线| 5252色成人免费视频| 亚洲福利合集| 这里只有精品66| 日韩 欧美一区二区三区| 波多野结衣视频播放| 亚洲精品老司机| 国产精品特级毛片一区二区三区| 亚洲欧美日本精品| 老牛影视精品| 国外成人在线视频网站| 欧美精品综合| 1314成人网| 亚洲丝袜精品丝袜在线| 自拍偷拍色综合| 国产性猛交xxxx免费看久久| 伊人网在线播放| 国产一区二区在线网站| 欧美激情一区| 永久看看免费大片| 一区二区三区四区视频精品免费| 91丨九色丨丰满| 色噜噜狠狠狠综合曰曰曰88av| 午夜日韩成人影院| 欧美成人dvd在线视频| 国产一级久久| 青青草视频成人| 黑人极品videos精品欧美裸| 图片区 小说区 区 亚洲五月| 色综合五月天导航| 国产精品巨作av| 97视频久久久| 久久综合资源网| 无码日韩精品一区二区| 亚洲免费影视第一页| 亚洲精品动漫| 欧美高清性xxxxhdvideosex| 久久尤物视频| 69视频在线观看免费| 欧美日韩国产一级二级| 1pondo在线播放免费| 成人免费福利在线| 中文一区一区三区免费在线观看| 丰满饥渴老女人hd| 午夜日韩在线观看| 欧美精品久久久久久久久久丰满| 日韩美女写真福利在线观看| 精品久久久久久久久久久aⅴ| 久久久国产欧美| 国产精品国产三级国产三级人妇 | 国产精品羞羞答答xxdd| 99热精品免费| 亚洲黄页网在线观看| 欧美成人资源| 亚洲永久一区二区三区在线| 国产一区二区毛片| 日本一级黄色大片| 日韩理论片久久| 亚洲第一会所| 中日韩在线视频| 成人a免费在线看| 日日夜夜狠狠操| 久久国产精品网站| 国产精品毛片久久久| 成人免费无码av| 中文字幕亚洲区| 人成网站在线观看| 国产成人精品综合| 在线中文字幕第一区| 亚洲国产精品无码久久久久高潮| 在线国产亚洲欧美| av网站大全在线| 欧美日韩精品免费观看| 极品少妇xxxx精品少妇偷拍| 豆国产97在线 | 亚洲| 亚洲性69xxxbbb| av一级亚洲| 天堂在线资源视频| 亚洲一区二区不卡免费| 国产一二在线观看| 国产高清不卡av| 视频一区二区不卡| 久久久精品99| 最近2019年中文视频免费在线观看| 大陆精大陆国产国语精品| 青青在线免费观看视频| 亚洲国产综合在线| 2017亚洲天堂1024| 欧美大香线蕉线伊人久久国产精品 | 欧美一区二区三区影院| 欧美性色黄大片手机版|