1

在一个分区内,jet 是否按顺序处理每个项目,和/或是否有设置以这种方式进行配置?

谢谢香农

4

1 回答 1

2

每个源处理器按顺序处理一个外部分区中的项目。例如,每个 Kafka 分区都分配给单个处理器实例,处理器按顺序发出数据。

但是,如果下游处理器从多个上游处理器获取项目,则未指定顺序。但是,来自一个上游处理器的项目永远不能重新排序。

示例:让我们有两个顶点ABA有两个实例:A1A2B只有一个实例B1。如果A1发出项目I1I2并且A2发出I3I4B1可以按任何顺序接收它们,但它永远不能在I1之前接收I2或在I3之前接收I4。例如I3 , I1 , I2 , I4是可能的顺序,但I2I1I3I4不是。

在这些情况下,将保持两个顶点之间的顺序:

  • 两者都具有相同的局部并行度并被Edge.isolated()使用。
  • 两者都通过分区边缘连接到它们的上游处理器,使用相同的密钥,具有相同的并行度,并且两者都是分布式的或两者都不是分布式的。

请注意,在这些情况下,下游处理器始终有一个上游处理器。

也看看这张图片(取自这里)。两个Tokenize圆是Tokenize顶点的两个处理器实例。

在此处输入图像描述

于 2018-01-17T07:11:33.297 回答