背景
在flink的taskmanager进行数据交互的过程中,网络缓冲区是一个可以提升网络交换速度的设计,此外,flink还通过网络缓冲区实现其基于信用值credit的流量控制,以便尽可能的处理数据倾斜问题
网络缓冲区
在flink中每个taskmanager都有两种类型的网络缓冲区,一个是发送网络缓冲区,一个是接收网络缓冲区,他们的大小都是32K,以下是示意图
我们在调优flink时,可以通过大概估算应用有多少个网络缓冲区,并且根据总的内存大小适当的调大或者调低每个网络缓冲区的大小以达到最佳性能。
顺便说一下: flink中基于信用值的流量控制是接收方根据每个发送方的消息堆积量来分配不同的流量信用值给发送方,比如给堆积比较多的发送方更多的信用值,以便它可以发送给接收方更多的数据,而对于堆积比较少的发送方,只提供给他们较低的信用值,这样就可以尽量的解决数据倾斜的问题了