flink BroadcastStream
使用场景: 在处理数据的时候,有些配置是要实时动态改变的,比如说我要过滤一些关键字,这些关键字呢是在MYSQL里随时配置修改的,那我们在高吞吐计算的Function中动态查询配置文件有可能使整个计算阻塞,甚至任务停止。 广播流可以通过查询配置文件,广播到某个 operator 的所有并发实例中,然后与另一条流数据连接进行计算。 实现步骤: 1、定义一个MapStateDescriptor来描述我们要广播的数据的格式 final MapStateDescriptor<String, String> CONFIG_DESCRIPTOR = new MapStateDescriptor<>( "wordsConfig", BasicTypeInfo.STRING_TYPE_INFO, BasicTypeInfo.STRING_TYPE_INFO); 2、需要一个Stream来广播下游的operator 我这里实现了一个只有1个并发度的数据源,定时查配置文件,发动到下游 public class MinuteBroadcastSource extends RichParallelSourceFunction<String> { private volatile boolean isRun; private volatile int lastUpdateMin = -1; private