我是Apache Storm的新手,我正在尝试自己设置风暴并行性。所以有一篇很棒的文章" Understanding the Parallelism of a Storm Topology",但它只引起了一些问题。
当您拥有多节点风暴群集时,每个拓扑根据TOPOLOGY_WORKERS
配置参数作为整体分发。所以如果你有5个工人,那么你有5个喷口副本(每个工人1个),同样的东西是螺栓。
如何在风暴群内处理这样的情况(最好不要创建外部服务):
答案 0 :(得分:2)
首先,基础知识:
第二,纠正......有5名工人并不意味着你会自动拥有5份你的喷口。拥有5个工作人员意味着你有5个独立的JVM,其中storm可以分配执行程序来运行(将其视为5个存储桶)。
首次创建和提交拓扑时,会配置您的喷口实例数:
TopologyBuilder builder = new TopologyBuilder();
builder.setSpout("0-spout", new MySpout(), spoutParallelism).setNumTasks(spoutTasks);
由于整个群集只需要一个喷口,因此您需要将spoutParallelism
和spoutTasks
都设置为1。