在hazelcast jet中的分区内的顺序处理

时间:2018-01-16 16:04:36

标签: hazelcast-jet

在分区内,是否按顺序对每个项目进行喷射处理,和/或是否有设置以此方式进行配置?

由于 香农

1 个答案:

答案 0 :(得分:2)

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

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

示例:让我们有两个顶点, A B A 有两个实例: A1 A2 ; B 只有一个实例 B1 。如果 A1 发出项 I1 I2 A2 发出 I3 I4 B1 可以按任何顺序接收它们,但在 I1 I4之前它永远不能接收 I2 / em>在 I3 之前。例如 I3 I1 I2 I4 是可能的顺序,但是 I2 I1 I3 I4 不是。

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

  • 都具有相同的本地并行度,并且使用了Edge.isolated()
  • 两者都连接到带有分区边缘的上游处理器,使用相同的密钥,具有相同的并行性,两者都是分布式的,或者两者都不是分布式的。

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

另请查看此图片(摘自here)。两个 Tokenize 圈是 Tokenize 顶点的两个处理器实例。

enter image description here