SpringBoot怎么集成Flink的部署与打包
本文小编为大家详细介绍"SpringBoot怎么集成Flink的部署与打包",内容详细,步骤清晰,细节处理妥当,希望这篇"SpringBoot怎么集成Flink的部署与打包"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
一、SpringBoot集成Flink
其实没什么特别的,就把Flink依赖的包在pom引入就行了。只是FlinkTask的写法要小调整下,把相关依赖交给spring管理就行。
然后如果放弃Flink的Dashboard端监控task执行相关信息,那也可以在SpringBoot的启动类里调用就行,但是可能出现task的相关对象没有注入,这种都是小问题(实际就是springboot启动完成再调用,或者通过自动任务调用。也可以在springBoot的入口类用@ComponentScan注解扫描flinkTask所在的目录)。
实际更潇洒一点的做法可以将flinkTask的信息存表,通过springBoot的接口调用restfullApi接口,接口里调用task,甚至可以做task的启停、线程监控(接口里开线程调用task)。
二、FlinkTask写法调整
@Component@Slf4jpublic class JianGongStopCarTask { public static void main(String[] args) throws Exception { StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); DataStreamdataStream = env.addSource(new JGParkingLotInfoSource());// 获取到数据之后转换格式 此处不做转换 SingleOutputStreamOperator jgParkingLotInfoSingleOutputStreamOperator = dataStream.map(jgParkingLotInfo -> jgParkingLotInfo); jgParkingLotInfoSingleOutputStreamOperator.addSink(new SinkToMySQL()); env.execute(); }}
PS:
实际就是@Component这个注解,然后这个示例里的JGParkingLotInfoSource、SinkToMySQL类都需要加这个注解。其他就没有什么调整了,然后如果还有其他依赖没有,使用hutool的SpringUtil进行get对象就行。
三、打包插件
maven-compiler-plugin 1.8 UTF-8 org.apache.maven.plugins maven-assembly-plugin 3.3.0 com.easylinkin.dc.olap.JianGongStopCarTask jar-with-dependencies make-assembly package single
除了打成SpringBoot用springboot的插件打包,flinkTask的打包有3种方式,方式三适合lib包提前传到task指定的依赖存储目录。这样上传flinkTask就很小。
方式二是官方推荐FlinkTask的打包方式
说一千道一万就是因为打包的META-INF下的MANIFEST.MF文件的内容有区别。springBoot项目的这个文件有自己的JarLauncher。
FlinkTask的jar这个文件内容
四、Flink的上传与运行
1、上传并命令运行
配置好flink环境,命令就是
flink run WordCount.jar
2、Flink管理大屏上传运行
点击"Submit"
读到这里,这篇"SpringBoot怎么集成Flink的部署与打包"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。