Netty - How to implement the Fan-Out pattern

时间:2017-10-12 09:38:05

标签: netty

is there any example that shows how to implement the fan-out pattern? basically in my Handler I want to send out multiple requests and then handle the result of those.

1 个答案:

答案 0 :(得分:1)

对于多个目标,我相信您可以使用PromiseAggregator和/或PromiseCombiner。如果我正确理解了您的用例,那么这些抽象就是为了做到这一点:加入多个Future / Promise,等待它们的合计结果。根据您的要求,详细信息可能有所不同,如果至少一项承诺失败,您可能会失败,或者如果至少一项承诺完成,您可能会很好。无论如何,可以在文档中或以下位置找到一些示例:PromiseCombiner example

final PromiseCombiner combiner = new PromiseCombiner(eventExecutor);
combiner.add(makeAsyncCall1());
combiner.add(makeAsyncCall2());
final DefaultPromise<Void> promise = new DefaultPromise<>(eventExecutor);
promise.addListener(new GenericFutureListener<Future<? super Void>>() {
    @Override
    public void operationComplete(Future<? super Void> future) throws Exception {
        // handle
    }
});
combiner.finish(promise);