我們有一個服務調用,它返回與我們調用另一個服務,只需要一個ID在一個時間ID的列表,所以我們使用的是帶有並行處理駱駝分流轉向true
。現在我們爲服務所做的電話是通過一個seda,所以我們可以暫停一下。這會導致並行處理不再平行的問題,因爲默認情況下seda只有1個併發消費者在使用它。駱駝分路器並行處理
選項:
- 把concurrentConsumers = X的SEDA
- 直接使用,而不是SEDA? (沒有超時選項?)
- 其他選項?
1和2的其中之一將是優選的?
我們有一個服務調用,它返回與我們調用另一個服務,只需要一個ID在一個時間ID的列表,所以我們使用的是帶有並行處理駱駝分流轉向true
。現在我們爲服務所做的電話是通過一個seda,所以我們可以暫停一下。這會導致並行處理不再平行的問題,因爲默認情況下seda只有1個併發消費者在使用它。駱駝分路器並行處理
選項:
1和2的其中之一將是優選的?
首先在分離器上將流設置爲true
對於大消息很有用。這意味着它會以塊的形式分割輸入消息。這減少了內存開銷。所以這將提高大消息的性能。
對於要並行真正處理的seda
隊列,您需要按如下方式設置seda
路由。
<from uri="seda:report?multipleConsumers=true&concurrentConsumers=16"/>
這將允許路由使用多達16個線程爲併發使用者。 seda
組件不實現任何類型的持久性或恢復,如果VM在消息尚未處理時終止,則它們將丟失。如果您需要持久性,可靠性或分佈式seda
,請嘗試使用或者jms
或activemq
的direct
組件是同步的,並根據對多個消費者的文檔支持已被棄用。從駱駝2.1開始:直接終端不支持多個消費者。其他選項是vm
組件。 vm
組件與seda
組件不同,因爲vm
支持通過CamelContext
實例進行通信 - 因此您可以使用此機制在Web應用程序間進行通信。實質上,vm
組件是seda
組件的擴展。
所以,如果如果你需要並行處理的direct
組件是沒有用的。如果您需要通過CamelContent
實例發送消息,則使用vm
,如果不是,則使用seda
,如上所述。