如何降低Flink作业的延迟?

提问者:帅平 问题分类:面试刷题
如何降低Flink作业的延迟?
1 个回答
我是蓝天i
我是蓝天i
降低Flink作业的延迟可采取如下措施:
1、提升并行度
dataStream.map(...).setParallelism(16); // 提升并行度
2、每个 TaskManager 的 Slot 数建议等于 CPU 核数及增大 TaskManager 堆内存
taskmanager.memory.process.size: 8192m  # 总内存 8GB
taskmanager.memory.task.heap.size: 4096m  # Task堆内存
3、将同步外部调用(如数据库查询)替换为异步模式。
4、为自定义类型指定高效序列化器。
5、将 map、filter 等轻操作合并为单个任务链,减少线程切换。
6、对高延迟算子使用 disableChaining() 隔离资源。
7、增大缓冲区数量
taskmanager.network.memory.buffers-per-channel: 4  # 每个通道缓冲区数
taskmanager.network.memory.floating-buffers-per-gate: 16  # 浮动缓冲区数
8、增量检查点
env.setStateBackend(new RocksDBStateBackend("hdfs:///checkpoints", true)); // 启用增量
发布于:2周前 (05-20) IP属地:
我来回答