SpringBoot超详细讲解集成Flink的部署与打包方法(springboot整合flink)

网友投稿 2452 2022-07-29


目录一、SpringBoot集成Flink二、FlinkTask写法调整三、打包插件四、Flink的上传与运行总结

一、SpringBoot集成Flink

其实没什么特别的,就把Flink依赖的包在pom引入就行了。只是FlinkTask的写法要小调整下,把相关依赖交给spring管理就行。

然后如果放弃Flink的Dashboard端监控task执行相关信息,那也可以在SpringBoot的启动类里调用就行,但是可能出现task的相关对象没有注入,这种都是小问题(实际就是springboot启动完成再调用,或者通过自动任务调用。也可以在springBoot的入口类用@ComponentScan注解扫描flinkTask所在的目录)。

实际更潇洒一点的做法可以将flinkTask的信息存表,通过springBoot的接口调用restfullApi接口,接口里调用task,甚至可以做task的启停、线程监控(接口里开线程调用task)。

二、FlinkTask写法调整

@Component

@Slf4j

public class JianGongStopCarTask {

public static void main(String[] args) throws Exception {

StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();

DataStream dataStream = 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

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的打包方式,地址:https://nightlies.apache.org/flink/flink-docs-release-1.15/docs/dev/configuration/maven/

说一千道一万就是因为打包的META-INF下的MANIFEST.MF文件的内容有区别。springBoot项目的这个文件有自己的JarLauncher。

FlinkTask的jar这个文件内容

四、Flink的上传与运行

1、上传并命令运行

配置好flink环境,命令就是

flink run WordCount.jar

2、Flink管理大屏上传运行

点击“Submit”

总结

这样处理应该是最优雅的了,task的写法改动也小。

官方用的是方式二打包,实际我觉得要是依赖特多,用方式三打包,然后将依赖的jar传到flink运行环境flinkTask指定的目录下应该也不错(flinkTask的包就变小了)

flink的这个计算监控真香

所以基本还是就当springBoot集成flink的项目一样开发吧,在打包的时候注意切换插件就ok了。就分享到这里,up!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java高版本Api在Android中的使用方法详解
下一篇:Flink流处理引擎零基础速通之数据的抽取篇
相关文章

 发表评论

暂时没有评论,来抢沙发吧~