1. 程式人生 > >storm傳參,限流

storm傳參,限流

storm通過kafka傳入資料的時候,有時候會出現併發修改的問題(這很可能是有static變數造成的),介面會出現spout fail的狀況,此時可以通過設定引數進行一部分資料的拋棄。
這裡寫圖片描述

builder.setSpout("Data", new SpoutA(args[1]), 1);

builder.setBolt("test", new BoltA(args[2]), 1).shuffleGrouping(
                "Data"); 

args[0]是拓撲名,args[1]是傳入spout的數,緊跟著args[1],args[2]是傳入bolt的資料,緊跟著args[2]
例如 storm jar test.jar storm.Topology s abc 10


args[0]=s,args[1]=abc,args[2]=10

下面就是修改spout和bolt的構造函數了

SpoutA中作如下修改

public SpoutA(String s) {
        str=s;
    }

BoltA中作如下修改

    public BoltA(String s) {
        x = Integer.parseInt(s);
    }