1ST问题:骆驼 - 内容富集器:丰富()VS pollEnrich()
我不能真正理解enrich()
和pollEnrich()
之间的差异。也许骆驼使用的术语不太好。
我读到这里:使用充实DSL元素
骆驼自带的内容富集的两种口味的DSL http://camel.apache.org/content-enricher.html
内容丰富
- 丰富
- pollEnrich
富集使用生产者获取附加数据。通常使用 来请求回复消息,例如调用外部的 Web服务。 pollEnrich另一方面使用轮询消费者 获取附加数据。它通常用于事件消息 消息传递,例如读取文件或下载FTP文件。
我不明白有什么区别。他们似乎都通过消费获得额外的数据(Web服务响应,FTP文件)。那么为什么他们说Web服务响应是由“制作者”完成的呢?
第二个问题:
在 “骆驼在行动” 的书页。 72他们说:
丰富和pollEnrich不能在目前的汇率
既不丰富也不pollEnrich可以利用从当前汇率的任何信息 访问信息。这意味着,例如,您不能在的交换机上存储文件名头,以便pollEnrich使用 选择一个特定的文件。如果Camel 团队可以找到解决方案,这可能会在未来发生变化。
但是他们给类似如下的代码示例,用于实现聚合策略:
public class ExampleAggregationStrategy implements AggregationStrategy {
public Exchange aggregate(Exchange original, Exchange resource) {
Object originalBody = original.getIn().getBody();
Object resourceResponse = resource.getIn().getBody();
Object mergeResult = ... // combine original body and resource response
if (original.getPattern().isOutCapable()) {
original.getOut().setBody(mergeResult);
} else {
original.getIn().setBody(mergeResult);
}
return original;
}
}
在这个例子中,我看到他们有机会获得Exchange original
,这不正是“当前汇率“?如果不是,那么“原始交换”代表什么交换? 他们是什么意思的“当前交流”?