Apache Flink,比 Kafka 分区更多的线程

Apache Flink, more threads than Kafka partitions

数据流很简单

kafka -> 一些逻辑 -> kafka

和 'some logic' 是这里的瓶颈所以我想使用更多 threads/tasks 来增加吞吐量而不是增加 kafka 分区(目前为 3)。输入和输出主题之间的顺序在这里无关紧要。

使用 Apache Storm 可以轻松完成。我可以为某些逻辑增加螺栓的并行度。我如何使用 Flink 做到这一点?更普遍的问题是,是否有任何简单的方法可以在 Flink 的不同阶段使用不同的并行性?

这在Flink中很简单。您可以使用 setParallelism() 方法指定每个运算符的并行度:

DataStream<String> rawEvents = env
  .addSource(new FlinkKafkaConsumer010("topic", new SimpleStringSchema(), props));

DataSteam<String> mappedEvents = rawEvents
  .flatMap(new Tokenizer())
  .setParallelism(64); // set parallelism to 64