Flink 整合 Nacos,让 Flink 作业配置动态更新不再是难事
点击上方“zhisheng”,选择“设为星标”
回复”666“获取独家整理的学习资料
我们知道 Flink 作业的配置一般都是通过在作业启动的时候通过参数传递的,或者通过读取配置文件的参数,在作业启动后初始化了之后如果再想更新作业的配置一般有两种解决方法:
•改变启动参数或者改变配置文件,重启作业,让作业能够读取到修改后的配置•通过读取配置流(需要自定义 Source 读取配置),然后流和流连接起来
这两种解决方法一般是使用的比较多,对于第一种方法,zhisheng 我本人其实是不太建议的,重启作业会带来很多影响,Flink 作业完整的重启流程应该是:当作业停掉的时候需要去做一次 Savepoint(相当于把作业的状态做一次完整的快照),启动的时候又需要将作业从 Savepoint 启动,整个流程如果状态比较大的话,做一次 Savepoint 和从 Savepoint 初始化的时间会比较久,然而流处理的场景下通常数据量都是比较大的,那么在这段时间内,可能会造成不少的数据堆积(可能分钟内就上千万或者更多),当作业启动后再去追这千万量级的数据,对作业来说压力自然会增大。
对于第二种方法也是一种用的很多的方式,自己也比较推荐,之前自己在社区直播的时候也有讲过类似的方案,但是今天我准备讲解另一种方法 —— 整合配置中心,没看见有人这么用过,我也算是第一个吃螃蟹的人了!说到配置中心,目前国内有 Apollo 和 Nacos,这里先来讲下和 Nacos 的整合,下面的实战操作请看我录制的视频。
源码地址:https://github.com/zhisheng17/flink-learning/tree/master/flink-learning-configration-center/flink-learning-configration-center-nacos
END
关注我
公众号(zhisheng)里回复 面经、ES、Flink、 Spring、Java、Kafka、监控 等关键字可以查看更多关键字对应的文章。