0

我正在使用 Apache camel 来实现调度程序 EIP。队列中有数千条消息需要通过不同的 URL 传递。每条消息都有自己的传递 URL 和传递协议(ftp、电子邮件、http 等)。

它的实现方式:

  • 引导一个单一的骆驼上下文,为 JMX 禁用上下文,并且在 ManagementStrategy 上将 loadStatisticsEnabled 设置为 false。如 jira 问题中所述,在 2.11.0 版本中解决,用于禁用后台管理线程创建。
  • 对于正在构建的每条消息,都会将消息推送到路由以进行传递。
  • 处理完消息后,路由将关闭并从上下文中删除。

通过有 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。

4

1 回答 1

1

这正在其他地方积极讨论,用户首先发布了这个问题:http ://camel.465427.n5.nabble.com/Slow-startup-of-routes-tp5732356.html

于 2013-05-14T08:15:53.347 回答