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
,這不正是「當前匯率「?如果不是,那麼「原始交換」代表什麼交換? 他們是什麼意思的「當前交流」?