关于Dataflow运行时所使用beam-sdks-java-core SDK版本的技术问询
嘿,我来帮你把这两个问题说清楚:
问题1:类路径中存在2.2.0版本时,我的流水线使用哪个SDK版本?
你的流水线会直接使用类路径里的2.2.0版本SDK。Dataflow运行作业时,优先认的是你构建流水线时打包进应用包的SDK版本,而不是平台默认的版本。只要你的构建配置(比如Maven或Gradle的依赖)明确引入了2.2.0,而且打包后的jar包/部署包里确实包含这个版本的SDK类文件,那流水线执行时就会用它。
问题2:代码用2.2.0版本,Dataflow运行时会采用2.2.0还是2.3.0版本?
肯定是2.2.0版本。beam-sdks-java-core的最新版本(2.3.0)不会自动覆盖你指定的版本——Dataflow运行时用的SDK版本完全由你构建作业时声明的依赖版本决定。只要你的项目依赖里写的是2.2.0,打包时就会把这个版本的SDK包含进去,运行时Dataflow就会加载这个版本的代码,不会偷偷升级到2.3.0。
小提醒:如果你的作业用到了Dataflow服务端的某些特性,部分旧版本可能会停止支持,但版本本身的选择还是由你打包的依赖说了算。
内容的提问来源于stack exchange,提问作者revathy
相关产品推荐
相关产品推荐

