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。