You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Storm拓扑配置下LocalOrShuffle Grouping:Worker-3的Bolt能否接收元组?

问题解答:Worker-3上的Bolt是否会接收元组?

答案是不会,下面结合Storm的LocalOrShuffle Grouping规则和你的拓扑配置详细解释:

首先明确LocalOrShuffle Grouping的核心逻辑

这种分组策略的优先级非常明确:

  • 当发送元组的组件(这里是Spout)所在的Worker进程中存在目标Bolt的实例时,只会将元组随机发送给同Worker内的Bolt实例,完全不会跨Worker发送;
  • 只有当发送组件所在的Worker里没有目标Bolt实例时,才会退化为普通的Shuffle Grouping,将元组随机分发给所有Worker上的Bolt实例。

结合你的拓扑配置分析

你的配置细节:

  • 2个Spout实例,部署在2个不同的Worker上(Worker-1和Worker-2),Worker-3没有部署任何Spout;
  • 8个Bolt实例会被Storm均匀分配到3个Worker上(比如Worker-1分配3个、Worker-2分配3个、Worker-3分配2个,具体数量可能略有差异,但每个Worker至少有2个Bolt实例)。

基于这个配置:

  1. Worker-1上的Spout发送元组时,发现同Worker内存在Bolt实例,所以只会把元组发给Worker-1里的Bolt;
  2. Worker-2上的Spout发送元组时,同理,只会把元组发给Worker-2里的Bolt;
  3. Worker-3上没有任何Spout,自然不会有本地Spout给它的Bolt发元组,而其他Worker的Spout又只会发本地Bolt,所以Worker-3上的Bolt完全接收不到任何元组。

如果希望Worker-3上的Bolt也能接收元组,你可以考虑改用普通的Shuffle Grouping,或者调整拓扑的任务分配(不过在你的8个Bolt、3个Worker的配置下,很难让某个Spout所在Worker没有Bolt实例)。

内容的提问来源于stack exchange,提问作者Tarun Chabarwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 18:14:09