前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Flink 任务远程调用Dubbo接口

Flink 任务远程调用Dubbo接口

作者头像
源哥
发布2021-09-10 15:08:47
1.3K0
发布2021-09-10 15:08:47
举报
文章被收录于专栏:源哥的专栏源哥的专栏

在大数据中,Flink任务一般都不是基于Spring框架和Dubbo框架的,但很多业务系统采用Dubbo架构,当需要调用业务系统的接口获取数据时,就出现Flink调用Dubbo的情况了。

由于Flink架构的特殊性,按照普通的Java项目引入Dubbo架构是不行的,在本地调测可能没有问题,但一定部署到生产环境,一般都会报错。

这是因为Flink架构是分布式的,正常情况下,包含一个Client端,一个jobManager和多个TaskManager,每个TaskManager还包含多个Task。引入Dubbo框架,实际启动在Client端,而执行在jobManager或者TaskManager,这两个不在同一个jvm上,这种方案不合理。

所以一般是通过配置文档获取一个Spring Context,但由于Flink是分布式,就可能会在一个JVM上启动多个Spring Context,这是会报错的。解决方案是采用单例模型来封装Spring Context,确保每个JVM只有一个Spring Context,可以在算子函数的open方法通过单例来获取相应的bean。

另外还有一个问题,在Flink中调用dubbo,往往在本地跑main方法是没有问题了,一旦打包发布到flink集群,就会出现找不到spring,或者dubbo配置文件异常之类的错误。这是没有添加maven的Transformer配置,没有把spring相关配置、依赖打包到jar中。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-03-24 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
大数据
全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档