我的用例需要读取来自 Kafka 主题的消息,并在消息发布到 Kafka 时按自然顺序处理这些消息。
Kafka生产者负责发布在单个kafka topic-partition中排序的每组消息,我需要在同一个Vertex-Processor中以相同的顺序处理每组消息。
上图代表基本思想。有一些从 Kafka 读取的 KafkaSource-Processors。
并且一条边连接到一个顶点以解码 kafka 消息等等。
我可以使用 kafka 消息键作为分区键,但我认为我最终会得到不平衡的解码处理器。
鉴于:
- 如何创建新的 Partitioner ?我找不到任何可以启发我的例子。
- 在新的分区器上,如何识别发出消息的 KS 处理器?我想在前一个顶点进程和下一个顶点处理器之间建立一对一的关系,例如,KS#0 总是将消息发送到 Decode#0,KS#1 到 Decode#1 等等。
- 我需要一个新的分区器还是有一些开箱即用的功能来实现它?