diff --git a/README.md b/README.md index a7ad146..a574dd5 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ # 简介 -

- +

+

本项目用于学习Flink所做的笔记,便于以后查看复习。此项目适合我这种虽然比较菜,且爱学习的人学习。 @@ -11,6 +11,7 @@ - [内存等资源调优](./调优/Resource.md) - [状态和CheckPoint 调优](./调优/CheckPoint.md) -- Flink SQL 调优 +- [如何分析及处理 Flink 反压](./调优/backpress.md) +- [Flink SQL 调优]() diff --git a/调优/backpress.md b/调优/backpress.md index f13ae82..e0824f5 100644 --- a/调优/backpress.md +++ b/调优/backpress.md @@ -1,5 +1,20 @@ +# 简介 + +反压(backpressure)是实时计算应用开发中,特别是流式计算中,十分常见的问题。反压意味着数据管道中某个节点成为 +瓶颈,处理速率跟不上上游发送数据的速率,而需要对上游进行限速。由于实时计算应用通常使用消息队列来进行生产端和 +消费端的解耦,消费端数据源是 pull-based 的,所以反压通常是从某个节点传导至数据源并降低数据源(比如 Kafka +consumer)的摄入速率。 + +简单来说,Flink 拓扑中每个节点(Task)间的数据都以阻塞队列的方式传输,下游来不及消费导致队列被占满后,上游的 +生产也会被阻塞,最终导致数据源的摄入被阻塞。 + +## 反压的影响 + +反压并不会直接影响作业的可用性,它表明作业处于亚健康的状态,有潜在的性能瓶颈并可能导致更大的数据处理延迟。通 +常来说,对于一些对延迟要求不太高或者数据量比较小的应用来说,反压的影响可能并不明显,然而对于规模比较大的 +Flink 作业来说反压可能会导致严重的问题。