apachestrom从1.0.3升级到2.2.0,并不是使用所有worker

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

我正在从ApacheStorm1.0.3升级到2.2.0,并且面临一个特殊的问题:拓扑任务不是在所有worker上运行,而是只在与spout相同的worker上运行。
我使用的是shufflegrouping,在2个螺栓和1个喷口中配置了6个工人和51个执行器。当我启动拓扑时,所有6个工人都按预期启动,但只有一个工人用喷口做所有的工作。
我需要2.2.0的特殊配置吗?我所有的拓扑在1.0.3版本下都可以正常工作
作为一个测试,我也从strom starter运行惊呼本体论,但看到的是只有一个工人做所有工作的相同问题。
提前谢谢你的帮助。
当做,

epfja78i

epfja78i1#

当升级到storm 2.0.0时,我也被您所观察到的行为所迷惑。原因在于您正在使用的shufflegroup。根据storm性能指南:
负载感知消息
当启用了负载感知消息传递(默认)时,随机分组会考虑消息路由的其他因素。这对性能的影响取决于拓扑及其部署范围(即进程和机器上的分布)。因此,评估将topology.disable.loadaware.messaging设置为true或false对您的特定情况的影响非常有用。
这将导致spout将所有元组委托给它发现自己所在的同一个worker。要修复它并返回到旧行为,请在拓扑中设置 topology.disable.loadaware.messagingtrue ,例如

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

相关问题