Apache storm 在字段分组中使用多个字段时会发生什么情况?

Apache storm 在字段分组中使用多个字段时会发生什么情况?,apache-storm,Apache Storm,假设我们有一个具有以下两个属性的事件流: {"first_name", "last_name"} 我们使用FieldsGroup对两个属性进行分区: 处理螺栓由两个任务并行,以下事件按指定顺序进入流: 1: {"foo", "foo"} 2: {"bar", "bar"} 3: {"foo", "bar"} 现在事件1和2分别进入任务1和任务2,事件3会发生什么?如果它转到任一任务,它将中断属性的字段分组 Storm是如何处理的?还是我没有正确理解字段分组 编辑: 再想一想,我可能误解了F

假设我们有一个具有以下两个属性的事件流:

{"first_name", "last_name"}
我们使用FieldsGroup对两个属性进行分区:

处理螺栓由两个任务并行,以下事件按指定顺序进入流:

1: {"foo", "foo"}
2: {"bar", "bar"}
3: {"foo", "bar"}
现在事件1和2分别进入任务1和任务2,事件3会发生什么?如果它转到任一任务,它将中断属性的字段分组

Storm是如何处理的?还是我没有正确理解字段分组


编辑:

再想一想,我可能误解了FieldsGroup的行为。如果两个字段都被认为是耦合的,那么事件1、2和3分别被认为是一个不同的分区。消除问题

然而,我在FieldsGroup上能找到的唯一一位官员对此并不清楚


如果有人能告诉我更详细的文档。

您是按姓按名分组的,这意味着并非所有同名元组都会在同一个目的地,但同名和姓氏相同的元组会


(第3.5.3节)有一个很好的例子,它基于按时间间隔和城市分组街道登记,而不是仅使用时间间隔。基本上,后者造成了一个瓶颈,在相同的时间间隔内,所有的街道检查都以相同的方式结束,无论城市如何。通过将城市添加到字段分组中,他们保持了所有街道登记在同一个螺栓中的要求,同时消除了瓶颈。

您自己的观察是正确的。这三个元组分别属于不同的“逻辑分区”,因为它们在所有字段上并不相等。因此,没有问题。我还认为,文档是准确的(可能不完整):“字段分组:流由分组中指定的字段进行分区。[…]”它表示“字段”,即复数。即使示例仅使用一个字段进行分组,如果您对此进行推断,很明显,对于多个分组字段,如果两个元组属于同一组/分区,则所有字段的值必须相同。
1: {"foo", "foo"}
2: {"bar", "bar"}
3: {"foo", "bar"}