flink_book/调优/backpress.md
2023-01-03 00:19:03 +08:00

21 lines
1.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<a title="Hits" target="_blank" href="https://github.com/zeekling/hits"><img src="https://hits.b3log.org/zeekling/flink_book.svg"></a>
# 简介
反压backpressure是实时计算应用开发中特别是流式计算中十分常见的问题。反压意味着数据管道中某个节点成为
瓶颈,处理速率跟不上上游发送数据的速率,而需要对上游进行限速。由于实时计算应用通常使用消息队列来进行生产端和
消费端的解耦,消费端数据源是 pull-based 的,所以反压通常是从某个节点传导至数据源并降低数据源(比如 Kafka
consumer的摄入速率。
简单来说Flink 拓扑中每个节点Task间的数据都以阻塞队列的方式传输下游来不及消费导致队列被占满后上游的
生产也会被阻塞,最终导致数据源的摄入被阻塞。
## 反压的影响
反压并不会直接影响作业的可用性,它表明作业处于亚健康的状态,有潜在的性能瓶颈并可能导致更大的数据处理延迟。通
常来说,对于一些对延迟要求不太高或者数据量比较小的应用来说,反压的影响可能并不明显,然而对于规模比较大的
Flink 作业来说反压可能会导致严重的问题。