Apache camel RecipientList Apache Camel EIP

Apache camel RecipientList Apache Camel EIP,apache-camel,Apache Camel,我试图在Camel中使用RecipientList模式,但我认为我可能没有抓住要点。以下代码仅在屏幕上显示一个条目: @Override protected RouteBuilder createRouteBuilder() { return new RouteBuilder() { public void configure() { from("direct:start").recipientList(bean(MyBean.class, "bu

我试图在Camel中使用RecipientList模式,但我认为我可能没有抓住要点。以下代码仅在屏幕上显示一个条目:

@Override
protected RouteBuilder createRouteBuilder() {
    return new RouteBuilder() {
        public void configure() {
            from("direct:start").recipientList(bean(MyBean.class, "buildEndpoint"))
                    .streaming()
                    .process(new Processor() {
                        @Override
                        public void process(Exchange exchange) throws Exception {
                            System.out.println(exchange.getExchangeId());
                        }
                    });
        }
    };
}

public static class MyBean {
    public static String[] buildEndpoint() {
        return new String[] { "exec:ls?args=-la", "exec:find?args=."};
    }
}

我还尝试从buildEndpoint()方法返回逗号分隔的字符串,并在recipientList()组件定义的表达式中使用tokenize(“,”),但仍然得到了相同的结果。我遗漏了什么?

收件人列表会将同一邮件的副本发送给X个收件人。之后执行的处理器是在收件人列表完成之后执行的,因此只执行一次。

我完全理解,但是从recipientList端点发出的所有消息发生了什么?看起来只有最后一个端点进入了最终处理器。是的,它们是聚合的,您可以使用自定义聚合策略。