精品欧美一区二区三区在线观看 _久久久久国色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ù)棧公眾號

熟女人妻一区二区三区免费看| 日韩欧美电影一区二区| 国产精品久久成人免费观看| 国产孕妇孕交大片孕| 亚洲区综合中文字幕日日| 精品国产伦一区二区三区免费 | 亚洲午夜视频在线观看| 久久久久九九九| 亚洲天堂男人网| 欧美日韩在线大尺度| 国产视频精品免费播放| 亚洲午夜激情影院| 天天舔天天干天天操| 久久久天天操| 久久69精品久久久久久国产越南| 免费中文字幕av| 日韩毛片免费视频一级特黄| 亚洲国产精品久久久久婷婷884| 欧美日韩视频在线一区二区观看视频| 一级成人免费视频| 1024成人| 久久亚洲精品一区二区| 国产交换配乱淫视频免费| av日韩在线免费观看| 中文字幕一区二区三区色视频 | 国产精品久久777777换脸| 亚洲激情午夜| 欧美精品在线免费播放| 鲁丝一区二区三区| 日韩av资源网| 欧美va在线播放| 亚洲怡红院在线| 成人天堂yy6080亚洲高清| 亚洲国产日韩精品| 国产一区二区三区播放| 日本中文字幕视频在线| 久久久久久免费网| 久久99精品久久久久久久青青日本 | 韩国av一区| 久久视频中文字幕| 黄色免费一级视频| 成人久久一区| 亚洲无线码在线一区观看| 日韩欧美精品在线观看视频| 在线网址91| 亚洲欧美日韩在线| 成人做爰66片免费看网站| 亚洲性生活大片| 蜜桃av一区二区三区电影| 中文字幕精品久久| 成年人网站免费在线观看| 韩国三级大全久久网站| 香蕉成人啪国产精品视频综合网| 日本三日本三级少妇三级66| 97人人在线| 国产亚洲欧洲997久久综合 | 爱啪啪综合导航| 综合久久久久综合| 国产日产欧美精品| 五月天激情国产综合婷婷婷| 欧美午夜免费影院| 欧美黑人一区二区三区| 午夜剧场免费在线观看| 久久精品av| 一区二区三区四区在线观看视频 | 少妇一级淫片日本| 性伦欧美刺激片在线观看| 久久久久久国产三级电影| 三级影片在线看| 亚洲va在线| 日韩亚洲欧美一区二区三区| 手机看片一级片| 成人国产精品| 欧美亚州韩日在线看免费版国语版 | 神马一区二区三区| 成人精品视频一区二区三区尤物| 91久久极品少妇xxxxⅹ软件| 亚洲av无码国产精品久久不卡| 欧美另类专区| 九九久久国产精品| 久艹视频在线观看| 日韩在线高清| 俺去了亚洲欧美日韩| 国产精品久久久免费看| 天天综合精品| 欧美精品第一页在线播放| 国产精品30p| 亚洲免费网址| 国产精品99久久久久久人| 一级特黄免费视频| 青椒成人免费视频| 成人在线国产精品| www.五月激情| 久久大逼视频| 国产精品欧美风情| av观看在线免费| 国产精品99精品久久免费| 国产一区在线观| 天堂а在线中文在线无限看推荐| 国产欧美一区二区三区在线看蜜臀| 日韩理论片在线观看| 国产系列电影在线播放网址| 国产精品美女视频| 午夜啪啪福利视频| 国产美女高潮在线| 色婷婷香蕉在线一区二区| 在线免费观看视频黄| 国产精品毛片aⅴ一区二区三区| 亚洲sss视频在线视频| 成人在线免费在线观看 | 国产精品美女www爽爽爽视频| 亚洲自拍第二页| 粉嫩av一区二区三区粉嫩| 牛人盗摄一区二区三区视频| av在线电影播放| 国产麻豆欧美日韩一区| 精品国产乱码久久久久久丨区2区| 久草福利在线| 亚洲综合一二三区| 搡女人真爽免费午夜网站| 年轻的保姆91精品| 亚洲欧美综合另类中字| 手机在线免费看片| 午夜亚洲性色视频| 亚洲一区制服诱惑| 牛牛热在线视频| 亚洲乱码国产乱码精品精98午夜 | 国产精品亚洲网站| 多男操一女视频| 露出调教综合另类| 亚洲老头同性xxxxx| 超碰97人人干| 一精品久久久| 日韩av片电影专区| 丰满人妻一区二区三区无码av| 欧美激情在线一区二区| av在线播放天堂| 国产福利亚洲| 亚洲精品视频免费在线观看| 国产精品白丝喷水在线观看| 蜜桃av一区| 久久伦理网站| a√中文在线观看| 日韩欧美视频在线| 日韩欧美在线视频播放| 久久xxxx| 久久综合久久久| 国产www视频在线观看| 4438成人网| 国产午夜精品福利视频| 激情六月综合| 国产精品免费一区二区三区在线观看| 一卡二卡三卡在线观看| 99精品热视频| 国产成人一区二区三区别| 国产a亚洲精品| 尤物精品国产第一福利三区| 青青青国产在线| 97久久精品人人澡人人爽| 亚洲激情电影在线| 性欧美videohd高精| 亚洲欧美日韩网| caoporn国产| 91色视频在线| 青青草原成人网| 特黄特色欧美大片| 91成人在线播放| 亚洲欧美另类日韩| 亚洲一区二区三区在线播放| 男插女视频网站| 一区视频在线| 精品伦精品一区二区三区视频| 国模私拍视频在线播放| 日韩精品一区二区三区在线观看 | 亚洲美女屁股眼交3| 天堂av8在线| 仙踪林久久久久久久999| 国产精品久久久久久久久久尿 | 欧美激情国产日韩| 亚洲mmav| 久久国产一区二区三区| 国产精品久久久久久久久毛片 | 国产成人福利在线| 日韩高清一级片| 亚洲精品乱码久久久久久蜜桃91| 少妇精品视频一区二区免费看| 亚洲无线码在线一区观看| 中文人妻熟女乱又乱精品| 国产精品伦理一区二区| 国产性生活一级片| 欧美日韩午夜| 久久久久久99| 二区三区不卡| 欧美高清dvd| 欧美黄片一区二区三区| 91蜜桃免费观看视频| 狠狠操精品视频| 国产精品久久久久久影院8一贰佰| 亚洲free性xxxx护士hd| h片在线观看| 亚洲片在线资源| 91国内精品久久久| 亚洲国产裸拍裸体视频在线观看乱了 | 欧美综合欧美视频| 日韩一卡二卡在线观看| 国产成人在线网站| 亚洲自偷自拍熟女另类| 极品美女一区二区三区| 国产成人精品久久亚洲高清不卡| 亚洲精品一线| 亚洲欧美国产一本综合首页| 一本一道人人妻人人妻αv| 亚洲综合男人的天堂| 在线观看日韩精品视频| 免费久久精品视频| 野外做受又硬又粗又大视频√| 免费视频一区三区| 欧美在线一区二区三区四| 超碰个人在线| 亚洲欧美另类人妖| 亚洲第一免费视频| 在线精品视频一区二区三四| 青青草免费av| 中日韩av电影| 这里只有精品在线观看视频| 丝袜美腿亚洲色图| 免费看日本毛片| 一区二区三区毛片免费| 日本成人黄色| 国产精品白丝av嫩草影院| 国产精品网站入口| 日韩在线伦理| 欧美激情奇米色| 欧美精品日韩少妇| 亚洲另类激情图| 国产91免费在线观看| 91电影在线观看| 日本韩国欧美中文字幕| 亚洲一区视频在线观看视频| 一级特黄曰皮片视频| 91香蕉视频污在线| 波多野结衣三级视频| 九色综合狠狠综合久久| 91n.com在线观看| 亚洲综合99| 国产乱子伦精品无码专区| 九九视频精品全部免费播放| 久久久久久国产精品mv| 99a精品视频在线观看| 成人免费激情视频| 精品69视频一区二区三区| 欧美高清视频在线| 成人短视频在线| 北条麻妃99精品青青久久| 成人资源www网在线最新版| 亚洲免费精彩视频| 欧美另类自拍| 亚洲欧美日韩网| 可以在线观看的av| 日韩精品高清在线| 欧美性猛交 xxxx| 日韩你懂的电影在线观看| 99热这里是精品| 欧美一区二区视频在线观看 | 在线综合亚洲| 国产96在线 | 亚洲| 亚洲经典三级| 岛国大片在线播放| 精品999成人| 亚洲 欧美 综合 另类 中字| 91成人观看| youjizz.com在线观看| 国产字幕视频一区二区| 免费高清一区二区三区| 韩国欧美一区| 777777av| 老司机午夜免费精品视频| 国产真人无码作爱视频免费| 久久久综合网| 成人免费在线观看视频网站| 韩国av一区二区三区在线观看| 国产探花一区二区三区| 高清久久久久久| 最近中文字幕无免费| 丁香桃色午夜亚洲一区二区三区| 欧美69精品久久久久久不卡| 国产成人av电影在线播放| 国产人妖在线观看| 成人黄色国产精品网站大全在线免费观看 | 亚洲一区电影在线观看| 最新日韩av在线| 精品无码久久久久| 欧美性高潮在线| 午夜视频网站在线观看| 正在播放亚洲一区| 亚洲h视频在线观看| 日韩电影网在线| 户外极限露出调教在线视频| 久青草国产97香蕉在线视频| sm在线观看| 国产精品免费福利| 日韩成人在线看| 精品久久sese| 加勒比久久综合| 亚洲啊啊啊啊啊| 91久久午夜| 99sesese| 99这里只有久久精品视频| 又色又爽的视频| 亚洲不卡av一区二区三区| 97精品久久人人爽人人爽| 亚洲国产精品久久91精品| 福利在线播放| 久久久久这里只有精品| 99riav视频一区二区| caoporen国产精品| eeuss国产一区二区三区四区| 亚洲精品成人三区| 亚洲一级电影| 国产高清视频网站| bt欧美亚洲午夜电影天堂| 人妻无码一区二区三区免费| 婷婷激情综合网| 亚洲av人无码激艳猛片服务器| 日韩视频免费直播| eeuss影院在线观看| 欧美第一黄网免费网站| 制服诱惑亚洲| 精品一卡二卡三卡四卡日本乱码 | 国产一区二区激情| 在线观看三级视频| 国产精品91一区| 97se亚洲国产一区二区三区| 最新视频 - x88av| 日韩av二区在线播放| 麻豆传媒在线看| 国产精品久久久久久一区二区三区| 日本熟妇成熟毛茸茸| 欧美一区二区三区四区高清| a黄色在线观看| 日韩av毛片网| 群体交乱之放荡娇妻一区二区 | 免费观看黄网站| 欧美国产精品久久| 免费无遮挡无码永久在线观看视频| 欧美色综合网站| 日色在线视频| 97视频在线观看成人| 日本亚洲视频| 性做爰过程免费播放| 国产原创一区二区| 欧美性生交大片| 在线观看欧美日本| 激情视频在线观看免费| 2021久久精品国产99国产精品| 豆花视频一区二区| 欧美成人三级在线视频| 成年人网站91| 日韩高清精品免费观看| 精品精品欲导航| 日本一级理论片在线大全| 亚洲自拍高清视频网站| 精品视频免费在线观看| 日韩一级免费片| 国产精品成人免费在线| 中文字幕日产av| 中文字幕日韩在线观看| 国产精品久久久久77777丨| 日韩欧美99| 国产精品一二三四区| 唐朝av高清盛宴| 精品久久久久久综合日本欧美| 天堂av资源在线观看| 国产久一道中文一区| 国产欧美高清| 少妇按摩一区二区三区| 欧美性色综合网| 精品欧美色视频网站在线观看| 国产日本欧美在线观看| 香蕉综合视频| 免费观看污网站| 午夜精品在线看| 第一福利永久视频精品| 亚洲中文字幕无码一区二区三区| 国产91精品在线观看| 欧美日韩成人免费观看| 精品国偷自产国产一区| 国产污视频在线播放| 久久综合福利| 男女激情视频一区| 亚洲天堂一级片| 亚洲高清福利视频| 99riav视频在线观看| 亚洲免费视频一区| 国产伦理精品不卡| 国产污视频在线观看| 亚洲无av在线中文字幕| 99re8精品视频在线观看| 日韩a级黄色片| 国产日本一区二区|