中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

storm Transactional spouts有哪些特性

發布時間:2021-12-22 17:31:10 來源:億速云 閱讀:97 作者:iii 欄目:云計算

本篇內容介紹了“storm Transactional spouts有哪些特性”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

Trident是以小批量(batch)的形式在處理tuple,并且每一批都會分配一個唯一的transaction id。不同spout的特性不同,一個transactionalspout會有如下這些特性:

1、有著同樣txid的batch一定是一樣的。當重播一個txid對應的batch時,一定會重播和之前對應txid的batch中同樣的tuples。

2、各個batch之間是沒有交集的。每個tuple只能屬于一個batch

3、每一個tuple都屬于一個batch,無一例外

這是一類非常容易理解的spout, tuple 流被劃分為固定的batch并且永不改變。(trident-kafka 有一個 transactional spout 的實現。)

你也許會問:為什么我們不總是使用transactional spout?這很容易理解。一個原因是并不是所有的地方都需要容錯的。舉例來說,TransactionalTridentKafkaSpout 工作的方式是一個batch包含的tuple來自某個kafka topic中的所有partition。一旦這個batch被發出,在任何時候如果這個batch被重新發出時,它必須包含原來所有的tuple以滿足 transactional spout的語義。現在我們假定一個batch被TransactionalTridentKafkaSpout所發出,這個batch沒有被成功處理,并且同時kafka的一個節點也down掉了。你就無法像之前一樣重播一個完全一樣的batch(因為kakfa的節點down掉,該topic的一部分partition可能會無法使用),整個處理會被中斷。

這也就是"opaque transactional" spouts(不透明事務spout)存在的原因 - 他們對于丟失源節點這種情況是容錯的,仍然能夠幫你達到有且只有一次處理的語義。后面會對這種spout有所介紹。

在討論"opaque transactional" spout之前,我們先來看看怎樣為transactional spout設計一個具有exactly-once語義的State實現。這個State的類型是"transactionalstate" 并且它利用了任何一個txid總是對應同樣的tuple序列這個語義。

假如說你有一個用來計算單詞出現次數的topology,你想要將單詞的出現次數以key/value對的形式存儲到數據庫中。key就是單詞,value就是這個這個單詞出現的次數。你已經看到只是存儲一個數量是不足以知道你是否已經處理過一個batch的。你可以通過將value和txid一起存儲到數據庫中。這樣的話,當更新這個count之前,你可以先去比較數據庫中存儲的txid和現在要存儲的txid。如果一樣,就跳過什么都不做,因為這個value之前已經被處理過了。如果不一樣,就執行存儲。這個邏輯可以工作的前提就是txid永不改變,并且Trident保證狀態的更新是在batch之間嚴格順序進行的。

考慮下面這個例子的運行邏輯,假定你在處理一個txid為3的包含下面tuple的batch:

["man"]

["man"]

["dog"]

假定數據庫中當前保存了下面這樣的key/value 對:

man => [count=3, txid=1]

dog => [count=4, txid=3]

apple => [count=10, txid=2]

單詞“man”對應的txid是1. 因為當前的txid是3,你可以確定你還沒有為這個batch中的tuple更新過這個單詞的數量。所以你可以放心的給count加2并更新txid為3. 與此同時,單詞“dog”的txid和當前的txid是相同的,因此你可以跳過這次更新。此時數據庫中的數據如下:

man => [count=5, txid=3]

dog => [count=4, txid=3]

apple => [count=10, txid=2]

“storm Transactional spouts有哪些特性”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁强县| 客服| 仙游县| 长治县| 阿拉尔市| 乐昌市| 阳信县| 肥东县| 安阳县| 公主岭市| 南皮县| 屏东市| 田东县| 桦甸市| 廉江市| 岳普湖县| 漳平市| 洪湖市| 色达县| 四平市| 利川市| 阳东县| 汉川市| 桃源县| 河源市| 宁陵县| 嘉定区| 呼玛县| 石景山区| 哈密市| 清水县| 吉首市| 常熟市| 科技| 利川市| 穆棱市| 秦安县| 来安县| 彭阳县| 新民市| 珠海市|