Flink1.5重构了网络栈,引入了“基于信用值的流量控制算法”(Credit-basedFlowControl),确保TaskManager之间的网络连接始终不会处于阻塞状态。Credit-basedFlowControl的思路其实也比较简单,它是在接收端和发送端之间建立一种类似
“信用评级”的机制,发送端向接收端发送的数据永远不会超过接收端的信用值的大小。在Flink这里,信用值就是接收端可用的Buffer的 数量,这样就可以保证发送端不会向TCP连接中发送超出接收端缓冲区可用容量的数据。相比于之前所有的InputChannel共享同一个本地缓冲池的方式,在重构网络栈之后,Flink会为每一个InputChannel分配一批独占的缓冲(exclusivebuffers),而本地缓冲池中的buffer则作为流动的(floatingbuffers),可以被所有的InputChannel使用。
Flink Credit的反压策略实现原理
于 2024-04-07 17:46:17 首次发布
Flink1.5通过重构网络栈引入Credit-basedFlowControl,监控接收端缓冲量,防止数据溢出。每个InputChannel现在有独立的缓冲,提高了性能并避免了阻塞。
摘要由CSDN通过智能技术生成