0

Der Datenfluss ist einfach wieApache Flink, mehr Threads als Kafka Partitionen

kafka -> eine gewisse Logik -> kafka

und 'eine gewisse Logik' ist ein Engpass hier so will ich mehr Threads verwenden/Aufgaben, um den Durchsatz zu erhöhen anstatt Kafka-Partitionen zu erhöhen (derzeit 3). Die Reihenfolge zwischen Eingabe- und Ausgabethemen spielt hier keine Rolle.

Es kann leicht mit Apache Storm durchgeführt werden. Ich kann einfach die Parallelität eines Bolzens für die Logik erhöhen. Wie kann ich es mit Flink machen? Allgemeinere Frage ist, ob es eine einfache Möglichkeit gibt, mit Flink unterschiedliche Parallelitäten für verschiedene Stufen zu verwenden.

Antwort

1

Dies ist in Flink ziemlich einfach. Sie können die Parallelität jedes Operators mit der Methode setParallelism() festlegen:

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

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