2013-05-13 146 views
0

我使用Apache camel來實現調度器EIP。隊列中有數千條消息需要在不同的URL上傳遞。每封郵件都有自己的發送URL和發送協議(ftp,email,http等)。Apache Camel緩慢啓動路由

它已經實現方式:

  • 啓動一個駱駝語境,上下文是JMX殘疾人和 loadStatisticsEnabled設置爲false在ManagementStrategy。由於在2.11.0版本中解決了jira問題中提到的 ,因此禁用 後臺管理線程創建。
  • 對於正在構建路由的每條消息,消息正在被推送到路由以進行傳送。
  • 消息處理完成後,路由關閉,並從 上下文中刪除。

通過使用200個調度程序組件的線程進行小型性能測試,每個調度程序組件都有相同的上下文。 觀察到啓動路線的時間增加到最多60秒,而處理時間以毫秒爲單位。

問題CAMEL-5675提到這個問題已得到解決,但仍然觀察到啓動路線需要花費大量時間。 https://issues.apache.org/jira/browse/CAMEL-5675

正被創建用於HTTP的路線是

from("direct:"+dispatchItem.getID()) 
.toF("%s?httpClient.soTimeout=%s&disableStreamCache=true", dispatchItem.getEndPointURL(),timeOutInMillis); 

每個dispatchItem具有唯一的ID。

回答