登录    关于
马育民老师的博客

马育民的博客

QQ:65242847

flink:classloader.resolve-order: parent-first

classloader.resolve-order: parent-first

parent-first

用户代码中的类先由 Flink 框架的类加载器加载,再由用户代码的类加载器加载。但是,Flink 默认并不采用 parent-first 策略,而是采用下面的 child-first 策略,继续看。

好处:随着类加载器的层次关系保证了被加载类的层次关系,从而保证了 Java 运行环境的安全性

缺点: 程序中引入的 Flink-Cassandra Connector 总是依赖于固定的 Cassandra 版本,用户代码中为了兼容实际使用的 Cassandra 版本,会引入一个更低或更高的依赖。而同一个组件不同版本的类定义有可能会不同(即使类的全限定名是相同的),如果仍然用双亲委派模型,就会因为 Flink 框架指定版本的类先加载,而出现莫名其妙的兼容性问题,如 NoSuchMethodError、IllegalAccessError

parent-first

使得用户代码的类先加载


原文出处:https://malaoshi.top/show_1IX24XTS33hY.html