在上一篇文章《Flink内部数据交换源码分析(一)》中,讲述了Flink Operator转成Task后,粗略地讲解如何从上游获取获取数据、反序列化、处理数据、序列化、发往下游的整个流程。上文并没有详细的解释,是如何将数据写出去的?写出去后,下游算子又如何跨网或者不跨网去获取数据呢?
本文的目的,就是用容易让人理解的方式将这个过程写出来。可以更容易理解或解决以下问题奠定坚实的基础。
为什么Flink是天然具备反压的?
反压在源码里是如何体现的?
Flink内部数据交换是如何做的?如何体现为Netty?
如何做动态扩缩?