twitter storm worker能否仅获取拓扑的一部分?

twitter storm worker能否仅获取拓扑的一部分?,twitter,apache-storm,Twitter,Apache Storm,假设您具有以下拓扑结构 喷口 以及以下设置: 3名工艺工人 spout,parallel hint=1 bolt1, parallel hint=2 bolt2,parallel hint=3 我的问题是: 我在工人中的以下(可能)分配是否正确: Worker1 spout1 bolt 2 Worker2 bolt 1 bolt 2 Worker3 bolt1 bolt 2 在上述条件下,bolt1(来自worker2

假设您具有以下拓扑结构

喷口

以及以下设置:

3名工艺工人

spout,parallel hint=1
bolt1, parallel hint=2
bolt2,parallel hint=3
我的问题是:

  • 我在工人中的以下(可能)分配是否正确:

    Worker1                  
       spout1
       bolt 2 
    Worker2
       bolt 1
       bolt 2
    Worker3
      bolt1
      bolt 2
    
  • 在上述条件下,bolt1(来自worker2,worker3)是否会从spout获得任何元组
  • 工人1的螺栓2是否会从螺栓1获得任何数据
  • 我们是否必须在工人数量和喷口/螺栓之间保持比例,以便每个工人至少获得一个喷口/螺栓

您需要区分不同任务在员工之间的分配方式以及喷嘴和螺栓之间的分组方式。分组决定元组在拓扑中的路由方式。例如,如果在spout和bolt1之间使用all分组,bolt1中的每个任务都将接收spout发送的每个元组。Storm有许多不同的分组,我建议您仔细阅读storms概念页面,这应该能回答您的问题:。

您需要区分不同任务在员工中的分配方式以及喷嘴和螺栓之间的分组。分组决定元组在拓扑中的路由方式。例如,如果在spout和bolt1之间使用all分组,bolt1中的每个任务都将接收spout发送的每个元组。Storm有许多不同的分组,我建议您仔细阅读storms概念页面,这应该能回答您的问题:。

简而言之,您不需要担心哪个员工正在处理特定任务。Storm负责消息的路由,这样你就不需要关注它了。在这种情况下,一切都将按预期工作:喷口将向bolt1工作者发送元组,而botl1工作者将向bolt2工作者发送元组,无论它们在群集中的物理位置如何


也就是说,你对工人之间任务分配的看法有些不正确。工人一次只能包含一个螺栓或喷嘴的任务。一个主管可能会运行多个工人,在这种情况下,您将在同一硬件上运行多个不同螺栓或喷嘴的任务,但不在同一流程中。

简而言之,您不需要担心哪个工人正在处理特定任务。Storm负责消息的路由,这样你就不需要关注它了。在这种情况下,一切都将按预期工作:喷口将向bolt1工作者发送元组,而botl1工作者将向bolt2工作者发送元组,无论它们在群集中的物理位置如何


也就是说,你对工人之间任务分配的看法有些不正确。工人一次只能包含一个螺栓或喷嘴的任务。一个主管可能运行多个工人,在这种情况下,您将在同一硬件上运行多个不同螺栓或喷嘴的任务,但不在同一流程中。

对不起,我相信给定工人(或流程)可以包含任意数量螺栓/喷嘴的任务。我现在有一个拓扑运行,一个工人,一个DRPC喷口和4个螺栓,每个都有一些任务。据我所知,一个给定的任务(或线程)将只执行一个喷口/喷口。对不起,我相信给定的工作者(或进程)可以包含任意数量的喷口/喷口的任务。我现在有一个拓扑运行,一个工人,一个DRPC喷口和4个螺栓,每个都有一些任务。据我所知,给定的任务(或线程)将只执行一个喷口/螺栓。
Worker1                  
   spout1
   bolt 2 
Worker2
   bolt 1
   bolt 2
Worker3
  bolt1
  bolt 2