Flink学习笔记(六):flink数据广播

本文探讨了在Flink作业中动态更新算子参数的方法,避免了因参数调整需频繁重启作业的问题。介绍了如何利用Flink的广播模式实现配置的动态更新,包括代码示例,适用于需要实时调整参数的场景。

一、需求场景

在很多情况下,对数据流处理需要动态更新一些参数,但是但因为该参数是在算子中作为一个变量,一旦flink作业启动,想修改关键字不得不停掉作业,然后再重新启动作业,实时性和便利性都比较差。

记得公司一个项目需要动态配置校验参数,检测日志中的该参数是否存在,频繁的重启flink作业,最后把服务器都搞挂了……,就差拉去祭天了T_T,还好是测试环境,逃过一劫

那么有没有可以动态修改算子参数的呢?如何进行动态修改算子的参数呢?

flink为我们提供了一个广播模式来解决这个问题。

广播流的流数据能够被算子的所有分区所处理,而数据流的流数据只能够被算子的某一分区处理。

广播流的特点也决定适合做配置的动态更新

二、实现代码

通过网络获取一个ObjectA对象的数据结构
通过kafka获取一个ObjectB对象的datastream
然后把通过广播连接两个数据流,在BroadcastProcessFunction进行数据处理
最后将处理好的数据通过sink invoke到指定的容器中。

定义广播流

private static BroadcastStream broadcastConfig = null;

获取广播流

//获取广播流
DataStream<ObjectA> stream = env.addSource(new RichSourceFunction<ObjectA>() {
   
   
    @Override
    public void run(SourceContext
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值