ApacheStorm-工人之间的元组分布

f5emj3cl  于 2021-06-24  发布在  Storm
关注(0)|答案(1)|浏览(367)

我正在使用ApacheStorm进行一个项目,我使用的拓扑结构依次由spout、bolta(2个执行器)和boltb(1个执行器)组成。

Spout --> BoltA --> BoltB

我的理解是,shuffle分组在bolt任务中平均划分元组,但我注意到,只有当所有任务都在同一个worker上时,这才是正确的。如果有1个以上的worker,比如说2个worker,并且每个worker承载同一个bolt的一个任务示例,那么两个任务中的负载是不均匀的。
在我的拓扑结构中,一个任务的负载为90%,第二个任务的负载为0%。
为什么多个工人的情况不同呢。

lymgl2op

lymgl2op1#

如果喷口和bolta之间有shuffle连接,元组应该均匀分布。
作为stig rohdeø如前所述,您提到的行为与“本地或无序分组”(请参阅storm概念)匹配,后者将优先向本地工作进程上的任务发送元组。
因此,如果喷口的并行度为1,并且其中一个bolta任务位于同一工作进程上,那么喷口中的元组将优先路由到该本地下游任务。

相关问题