Flink Credit的反压策略实现原理

Flink1.5重构了网络栈,引入了“基于信用值的流量控制算法”(Credit-basedFlowControl),确保TaskManager之间的网络连接始终不会处于阻塞状态。Credit-basedFlowControl的思路其实也比较简单,它是在接收端和发送端之间建立一种类似
     “信用评级”的机制,发送端向接收端发送的数据永远不会超过接收端的信用值的大小。在Flink这里,信用值就是接收端可用的Buffer的 数量,这样就可以保证发送端不会向TCP连接中发送超出接收端缓冲区可用容量的数据。相比于之前所有的InputChannel共享同一个本地缓冲池的方式,在重构网络栈之后,Flink会为每一个InputChannel分配一批独占的缓冲(exclusivebuffers),而本地缓冲池中的buffer则作为流动的(floatingbuffers),可以被所有的InputChannel使用。

你可能感兴趣的:(flink,大数据)