R - 聚合结果类型,分布式的输入类型为任意类型,最终汇总到类型R的实例,需要注意的是,R类型必须有无参构造器public interface DistributeAggregator<R> extends Aggregator<R,DistributeMergeableNode<?,R>>
DistributeMergeableNode节点的返回结果,每个DistributeMergeableNode节点结果类型不同,在聚合时会调用DistributeMerger.merge(T, R)进行具体聚合。
┌——————————————————————————————┐ ┌——————————————————————————————┐ ┌——————————————————————————————┐
| DistributeMergeableNodeA | | DistributeMergeableNodeB | | DistributeMergeableNodeC |
└——————————————————————————————┘ └——————————————————————————————┘ └——————————————————————————————┘
| | |
| | |
┌—————————————————————————┐ ┌—————————————————————————┐ ┌—————————————————————————┐
| NodeResultA(type:A) | | NodeResultB(type:B) | | NodeResultC(type:C) |
└—————————————————————————┘ └—————————————————————————┘ └—————————————————————————┘
| | |
| | |
|_______________________________________|________________________________________|
|
|
┌———————————————————————————┐
| DistributeAggregator |
└———————————————————————————┘
|
|
┌——————————————————————┐
| result(type:R) |
└——————————————————————┘
DistributeMergeableNode,
DistributeProcessor@NotNull R aggregate(@NotNull @NotNull Context context, List<DistributeMergeableNode<?,R>> nodes) throws Exception
aggregate 在接口中 Aggregator<R,DistributeMergeableNode<?,R>>context - 流程上下文nodes - 可合并结果节点ExceptionMergeableNodeCopyright © 2021. All rights reserved.