我正在使用Apache camel来实现调度程序EIP . 队列中有数千条消息需要在不同的URL上传递 . 每条消息都有自己的传递URL和传递协议(ftp,email,http等) .
它的实施方式:
-
引导单个camel上下文,为JMX禁用上下文,并在ManagementStrategy上将loadStatisticsEnabled设置为false . 正如在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 .
1 回答
这在其他地方正在讨论,用户首先发布了这个问题:http://camel.465427.n5.nabble.com/Slow-startup-of-routes-tp5732356.html