storm bolt中任务间的变量

whhtz7ly  于 2021-06-21  发布在  Storm
关注(0)|答案(1)|浏览(257)

字段分组可以将具有特定字段的元组定向到同一任务。一个执行器可以包含多个任务。
如果我用一个私有变量整数声明一个bolt来计算元组。

public static class CountBolt implements IRichBolt {
    OutputCollector _collector;
    private int count;

    public void prepare(Map conf, TopologyContext context, OutputCollector collector) {
        _collector = collector;
        count = 0;
    }

    public void execute(Tuple tuple) {
        count = count + 1;
        _collector.ack(tuple);
    }

    public void cleanup() {
    }

    public void declareOutputFields(OutputFieldsDeclarer declarer) {
    }

    public Map getComponentConfiguration() {
        return null;
    }
}

此计数是否显示同一任务或同一执行器的输入总数?

but5z9lq

but5z9lq1#

计数将按每个任务进行。每个任务都有自己的spout/bolt类示例。
如果声明了变量,则它将是每个worker static . (不是每个执行器,因为一个工人可能会运行同一个管嘴/螺栓的多个执行器。)

相关问题