在分布式实时计算领域,如何让框架/引擎足够高效地在内存中存取、处理海量数据是一个非常棘手的问题。在应对这一问题上Flink无疑是做得非常杰出的,Flink的自主内存管理设计也许比它自身的知名度更高一些。正好最近在研读Flink的源码,所以开两篇文章来谈谈Flink的内存管理设计。
Flink的内存管理的亮点体现在作为以Java为主的(部分功能用Scala实现,也是一种遵循JVM规范并依赖JVM解释执行的函数式编程语言)的程序却自主实现内存的管理而不完全依赖于JVM的内存管理机制。它的优势在于灵活、为大数据场景而生、避免(不受控的)频繁GC导致的性能波动,某种程度上跳出了JVM的限制,是一种思路上的开拓。
基本上我们将Flink的内存设计分为两个部分(遵循packag的划分方式):
基础数据结构(packag:org.apach.flink.cor.mmory)
内存管理机制(packag:org.apach.flink.runtim.mmory)
我们将分开来进行讲解,本篇主要白癜风皮肤病北京哪些医院白癜风疗效比较好