storm初級教程 007 訊息可靠性如何防oom

2021-09-28 14:45:51 字數 617 閱讀 1328

spout fail重發的明確定義是

目標spout呼叫fail或者超過失敗超時時間

而ack則是被所有的bolt處理完畢呼叫

詳解ack**不完善導致的oom異常;

每乙個tuple成為可靠性訊息的時候都會建立訊息樹,

訊息樹在spout中的建立是msgid

this.collector.emit(new values(sentences[index]),msgid);

在blot中建立是input,其是乙個tuple(一般為輸入tuple)

this.collector.emit(input,new values(word));

當blot中的錨點全部被ack之後,spout呼叫ack方法表示訊息可靠處理

如果blot中元組發射時候打了錨點卻沒有確認,那麼這個訊息只能等待超時後被重發,同時訊息錨點樹被重建

strom的訊息錨點樹儲存記憶體中,當計算時,訊息源資料量一大,迴圈往復的訊息樹始終銷毀,記憶體無法無法gc

則很容易發生oom

所以在指定了錨點的時候,一定要確保ack!

此外訊息可靠性機制是可調節的!

訊息樹

storm初級教程 001 storm簡介

topology 乙個拓撲是乙個圖的計算,類似於mapreduce stream 流 其實就是資料的抽象,storm將資料封裝成元組結構tuple 所有機器上的某個topology任務的資料構成流 spout 資料來源 一般是佇列消費端 bolt 資料處理單元 負責計算,傳輸tuple,儲存資料 在...

HLSL初級教程

hlsl 初級教程 trcj 目錄 前言1.hlsl 入門1.1 什麼是著色器 1.2什麼是 hlsl 1.3怎麼寫hlsl 著色器1.4 怎麼用hlsl 著色器2.頂點著色器 2.1可程式設計資料流模型 2.2頂點宣告 2.3用頂點著色器實現漸變動畫 3.畫素著色器 3.1多紋理化 3.2多紋理效...

SubVersion初級教程

don t tell me why,just tell me how.1 找個rpm或者bin或者tar之類的安裝包,把subvesion安裝好。裝好之後client server admin都在你機器上了。2 首先在你中意的目錄,比如根目錄 下,執行 svnadmin create svnroot...