请问下,Flink CDC 中debezium1.6之后开始依赖JDK11,flink是怎么做到debezium1.9.7.Final在JDK8下也能使用的
Flink CDC 使用的是 Debezium Connectors 的源码,但并不直接依赖于 Debezium。相反,Flink CDC 将 Debezium Connectors 进行了重构,并移植到 Flink Connectors API 中。因此,Flink CDC 本身可以兼容较低版本的 Flink。
具体来说:
1. Debezium 1.6+ 版本开始要求使用 JDK 11。 2. 但是 Flink CDC 并没有直接依赖 Debezium,而是将 Debezium Connectors 源码移植到 Flink Connectors API 中。 3. 因此,Flink CDC 可以兼容较低版本的 Flink,只需要满足当前使用的 Flink 版本即可。 4. Flink CDC 定期与 Debezium 同步源码,并保持与自身 Flink 版本的兼容性要求。
举个例子来说明:
- Debezium 1.6 需要 JDK 11。 - 但是 Flink CDC 2.4.0(当前稳定版本)仍然可以与 Flink 1.14.2(支持 JDK 8)兼容。 - 这是因为 Flink CDC 并不直接使用 Debezium 的 JAR 包,而是基于 Debezium Connector 的源码实现的。
综上所述,Flink CDC 可以独立于 Debezium 对 JDK 的要求,只需要满足自身所依赖的 Flink 版本的要求即可。
Flink CDC 使用 Debezium Connectors 作为源码,但并非直接依赖 Debezium。
Flink CDC 将 Debezium Connectors 重构并移植到 Flink Connectors API 中,因此 Flink CDC 本身依旧可以兼容低版本的 Flink。
具体来说:
Debezium 1.6+ 已经开始需要 JDK 11
但 Flink CDC 并没有直接依赖 Debezium,而是基于 Debezium Connector 源码,移植到 Flink Connectors API 中
所以 Flink CDC 可以兼容低版本的 Flink(支持 JDK 8),只要 Flink 当前版本支持即可
Flink CDC 会定期与 Debezium 同步源码,并保持兼容本身的 Flink 版本要求
举个例子:
Debezium 1.6 需要 JDK 11
但 Flink CDC 2.4.0(当前稳定版)依然可以与 Flink 1.14.2(支持 JDK 8)兼容
这是因为 Flink CDC 并没有直接使用 Debezium Jar 包,而是基于 Debezium Connector 源码实现的。
所以总的来说,Flink CDC 可以独立于 Debezium 的 JDK 要求,只要兼容本身 Flink 版本即可。
希望以上解释能为你提供参考!如
https://www.morling.dev/blog/bytebuffer-and-the-dreaded-nosuchmethoderror/,11编译的,但是好像还支持在1.8上运行。,此回答整理自钉群“Flink CDC 社区”
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。