在实际开发中,往往我们在 DataStream 中仅仅只计算数据本身是不够的,或者说,数据计算本身存在其他依赖,那么,在 DataStream 中通过获取其他数据源的数据对数据本身进行补充丰富,这个过程称之为数据的 Enrich。
而在实际计算中,这种 Enrich 操作如果用同步操作,是不能满足数据的实时性的要求的,这就需要我们实现 DataStream 中异步编程。
// orderedWait 保证异步取回的数据和发送的顺序一致
// unorderedWait 不保证一致
DataStream<...> result = AsyncDataStream.(un)orderedWait(
stream, // 数据流
new HBaseAsyncFunc(), // AsyncFunction
1000, // 超时时间
TimeUnit.MILLISECONDS,
100 // 最大同时请求数量
);