1、异步IO
AsyncDataStream
Async I/O提供了两种模式:ORDERED和UNORDERED.
UNORDERED:异步请求一结束就马上输出结果,因为异步请求完成时间的不确定性,结果输出的顺序可能和输入不同.
此模式调用:AsyncDataStream.unorderedWait(...)
ORDERED:在这个模式下结果输出的顺序和输入的顺序是一样的,为了实现这一点,后输入的数据异步请求先完成了只能缓存在一个指定的结果中,直到在此之前的记录全部完成异步请求并输出后,才能输出,因此带来了一些额外的延迟和checkpoint开销.
此模式吊用:AsyncDataStream.orderedWait(...)
public class AsyncIOStream {
public static void main(String[] args) throws Exception {
StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
env.setParallelism(3);
DataStreamSource<String> source = env.addSource(new FlinkKafkaConsumer010<String>("dwd", new SimpleStringSchema(), KafkaUtils.comsumerProps()));
SingleOutputStreamOperator<Tuple2<String, Integer>> vodStream = source.map(new MapFunction<