我们最近从 Mule 3.1.2 升级到 3.3.0。我们正在使用在 JBoss 5.1 的战争中部署的 Mule。在我们的后台应用程序中,我们有大量使用石英入站端点的流,然后运行各种处理器。像这个 :
<flow name="ImportXXX">
<quartz:inbound-endpoint repeatInterval="5000" startDelay="10000" jobName="QuartzImportXXX" >
<quartz:event-generator-job>
<quartz:payload>${XXX.depot} | ${archive}</quartz:payload>
</quartz:event-generator-job>
</quartz:inbound-endpoint>
<component>
...
</component>
<component>
...
</component>
</flow>
我们有大约 40 个与此类似的流(处理器根据石英有效负载做不同的事情)
在 mule 3.3.0 中,这些流程中的每一个都需要大约 5 秒才能启动,而 3.1.2 流程中完全相同的配置会立即启动(每个流程不到 1/10 秒)。我们也没有对底层处理器实现进行任何更改,这是一次纯粹的迁移。我试图删除我们所有的特定处理器,并用一个除了记录一行什么都不做的替换它们。现在每个流程的启动都“减少”到了 1.5 秒,但仍然比 3.1.2 慢很多。总体而言,问题随着流的数量和加载的组件而增加(如果我注释一半的流,则单流启动时间会提高 1 或 2 秒)
这似乎是在 JBoss 的战争中部署时所特有的,我在从基本 maven 原型创建的独立 Mule 应用程序中尝试了完全相同的 mule-config.xml,并且所有流程都像在 3.1.2 中一样顺利快速地启动。
在 Mule 3.3 中初始化流程的方式是否有任何变化可以解释这一点?关于我可以检查或尝试什么的任何想法?
谢谢你的帮助,
洛朗