storm 可靠性

去掉storm可靠性有三種方式:
1、Config.TOPOLOGY_ACKERS 設(shè)置為0;
2、在發(fā)送數(shù)據(jù)時(shí)不帶上mesage id;
3、將tuple不做anchor發(fā)送到下一個(gè)節(jié)點(diǎn),因?yàn)闆](méi)有anchor到任何spout的tuple,就算沒(méi)有成功處理被ack,也不會(huì)造成tuple fail

如果設(shè)置storm的信息處理不需要可靠性保證,spout的等待隊(duì)列一直為空,因?yàn)闊o(wú)需緩存數(shù)據(jù)。
保證storm可靠性,需要構(gòu)建tuple樹,如果整個(gè)樹在規(guī)定超時(shí)時(shí)間內(nèi)不能沒(méi)有處理完成,則認(rèn)為是失敗。為保證tuple樹的構(gòu)造:
1.在Spout發(fā)送數(shù)據(jù)時(shí)帶上messageId(collector.emit(new Values(“test),msgId)),這樣,當(dāng)storm認(rèn)為該tuple被成功處理,將調(diào)用spout的ack方法,并將msgId傳給spout.
2.在每個(gè)bolt處理tuple的時(shí)候,因tuple樹需要生長(zhǎng),所以在bolt處理完tuple并發(fā)送數(shù)據(jù)的時(shí)候,需要通知storm在tuple樹添加新的鏈路,通過(guò)anchor即可,anchor鏈接一個(gè)節(jié)點(diǎn)時(shí),emit(tuple, new Value(“test”));如果需要同時(shí)鏈接兩個(gè)節(jié)點(diǎn),通過(guò)emit(List<Tupple>, new Value(“test”))

因?yàn)閟torm通過(guò)內(nèi)存追蹤元組的狀態(tài),所以需要保證可靠性時(shí),一定要ack或者fail,不然會(huì)耗盡內(nèi)存, messageId在發(fā)射數(shù)據(jù)時(shí),根據(jù)anchors去生成新的messageId.

實(shí)現(xiàn)Bolt有兩種方式,一種是實(shí)現(xiàn)IRichBolt,一種是繼承實(shí)現(xiàn)IBasicBolt的BasicBolt,在TopologyBuilder中,可以看到在調(diào)用setBolt的方法時(shí),對(duì)比兩種類型的實(shí)現(xiàn)方法:

Paste_Image.png

在該方法中,直接將IRichBolt作為參數(shù)傳入topologyBuilder中初始化。
IBasicBolt:

Paste_Image.png

將IBasicBolt包裝成BasicBoltExecutor,這個(gè)類中的execute方法將會(huì)自動(dòng)ack tuple,這也就是為什么繼承BasicBolt會(huì)自動(dòng)ack tuple而無(wú)需手動(dòng)ack:

Paste_Image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Date: Nov 17-24, 2017 1. 目的 積累Storm為主的流式大數(shù)據(jù)處理平臺(tái)對(duì)實(shí)時(shí)數(shù)據(jù)處理的相關(guān)...
    一只很努力爬樹的貓閱讀 2,327評(píng)論 0 4
  • 原文鏈接:Guaranteeing Message Processing 本人原創(chuàng)翻譯,轉(zhuǎn)載請(qǐng)注明出處 Storm...
    quiterr閱讀 2,388評(píng)論 0 3
  • 目錄 場(chǎng)景假設(shè) 調(diào)優(yōu)步驟和方法 Storm 的部分特性 Storm 并行度 Storm 消息機(jī)制 Storm UI...
    mtide閱讀 17,283評(píng)論 30 60
  • Storm入門系列之一:storm核心概念及特性 本文的將介紹一些 storm 入門的基礎(chǔ)知識(shí),包括 storm ...
    zhaif閱讀 3,392評(píng)論 0 17
  • 當(dāng)動(dòng)脈中脂肪堆積越多,動(dòng)脈功能就越差,而血管壁增厚,血流減少,這不僅會(huì)加重心臟負(fù)擔(dān),而且還會(huì)增加血栓和全身血液...
    不一樣的潔閱讀 365評(píng)論 0 1

友情鏈接更多精彩內(nèi)容