Apache storm ApacheStrom从1.0.3升级到2.2.0,并不是所有的worker都被使用

Apache storm ApacheStrom从1.0.3升级到2.2.0,并不是所有的worker都被使用,apache-storm,apache-storm-topology,storm-topology,Apache Storm,Apache Storm Topology,Storm Topology,我正在从ApacheStorm 1.0.3升级到2.2.0,并面临一个特殊的问题,拓扑任务并不是在所有工作线程上运行,而是只在与喷口相同的工作线程上运行 我使用shuffleGrouping,在2个螺栓和1个喷嘴中配置了6名工人和总共51名执行器。当我启动拓扑时,所有6个工人都按预期启动,但只有一个带喷口的工人在做所有工作 我需要2.2.0的任何特殊配置吗?我的所有拓扑都可以在1.0.3版本中正常工作 作为一个测试,我还运行了Strom starter的EquiremationTopology,

我正在从ApacheStorm 1.0.3升级到2.2.0,并面临一个特殊的问题,拓扑任务并不是在所有工作线程上运行,而是只在与喷口相同的工作线程上运行

我使用shuffleGrouping,在2个螺栓和1个喷嘴中配置了6名工人和总共51名执行器。当我启动拓扑时,所有6个工人都按预期启动,但只有一个带喷口的工人在做所有工作

我需要2.2.0的任何特殊配置吗?我的所有拓扑都可以在1.0.3版本中正常工作

作为一个测试,我还运行了Strom starter的EquiremationTopology,但看到了相同的问题,即只有一个工人完成所有工作

提前感谢您的帮助


关于,

当升级到storm 2.0.0时,您观察到的行为也让我感到困惑。原因在于您正在使用的shufflegroup。根据报告:

  • 负载感知消息传递
  • 启用负载感知消息时(默认),随机分组会在消息路由时考虑其他因素。这对性能的影响取决于拓扑及其部署范围(即进程和机器上的分布)。因此,评估将topology.disable.loadaware.messaging设置为true或false对特定情况的影响非常有用

    这将导致喷口将所有元组委托给它发现自己所在的同一个工作者。要修复它并返回到旧行为,请在拓扑中,将
    拓扑.禁用.loadaware.messaging
    设置为
    true
    ,例如使用

    conf.put("topology.disable.loadaware.messaging", true);
    

    升级到storm 2.0.0时,您观察到的行为也让我感到困惑。原因在于您正在使用的shufflegroup。根据报告:

  • 负载感知消息传递
  • 启用负载感知消息时(默认),随机分组会在消息路由时考虑其他因素。这对性能的影响取决于拓扑及其部署范围(即进程和机器上的分布)。因此,评估将topology.disable.loadaware.messaging设置为true或false对特定情况的影响非常有用

    这将导致喷口将所有元组委托给它发现自己所在的同一个工作者。要修复它并返回到旧行为,请在拓扑中,将
    拓扑.禁用.loadaware.messaging
    设置为
    true
    ,例如使用

    conf.put("topology.disable.loadaware.messaging", true);
    

    这是很好的信息,感谢您的回复。让我试试这个。希望它能成功,如果成功了请告诉我们,谢谢!这是很好的信息,感谢您的回复。让我试试这个。希望它能成功,如果成功了请告诉我们,谢谢!