在实际开发中,往往我们在 DataStream 中仅仅只计算数据本身是不够的,或者说,数据计算本身存在其他依赖,那么,在 DataStream 中通过获取其他数据源的数据对数据本身进行补充丰富,这个过程称之为数据的 Enrich。

而在实际计算中,这种 Enrich 操作如果用同步操作,是不能满足数据的实时性的要求的,这就需要我们实现 DataStream 中异步编程。

API

// orderedWait 保证异步取回的数据和发送的顺序一致
// unorderedWait 不保证一致
DataStream<...> result = AsyncDataStream.(un)orderedWait(
	stream,  // 数据流
	new HBaseAsyncFunc(),  // AsyncFunction 
	1000, // 超时时间
	TimeUnit.MILLISECONDS, 
	100  // 最大同时请求数量
);