问题背景
在使用FlinkSql做topic复制程序时,遇到一个问题:
一份kafka topic数据往多个topic中发,实现一份数据复制多份的功能,但是在做性能压测的时候发现tps上不来。
问题分析
由于flinksql目前不支持针对具体的算子设置并行度,所以整个job只设置了一个整体并行度。由于flink内部的operation chain机制,会将source和3个map、3个sink都chain到一起,形成一个串行的结构
验证代码如下:
import org.apache.flink.api.common.functions.FlatMapFunction;
import org.apache.flink.api.java.tuple.Tuple2;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.functions.source.RichSourceFunction;
import org.apache.flink.util.Collector;
public class MyTest {
public static void main(Strin