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。