Camel - DirectConsumerNotAvailableException端点上没有可用的消费者

时间:2014-09-17 19:41:15

标签: java apache-camel integration producer-consumer

我一直在谷歌以及Stackoverflow上搜索此问题。我已经看到其他几个人报告了同样的例外情况,虽然我明白了建议的解决方案是什么,但如果我愿意见证完全相同的问题,我不是100%。

当然,这是例外:

我有一个有两条路线的Camel项目。这是一个简化:

<route>
  <from uri="jetty://http://0.0.0.0:8181/listener"/>
  <to uri="direct:ProcessMessage"/>
</route>

<route>
  <from uri="direct:ProcessMessage"/>
  ...
</route>

因此,此代码段大部分时间都能正常运行。但是,我试图测试代码的可伸缩性。系统什么时候开始失败?

当在上面的侦听器端点上发送每秒100条消息时(使用Jetty),我开始在日志中看到这一点:

org.apache.camel.component.direct.DirectConsumerNotAvailableException: No consumers available on endpoint: Endpoint[direct://ProcessMessage]

我所看到的解决方案表明这是因为路由的顺序(即它们如何初始化)。如果在这种情况下确实如此,为什么这只会在较重的负载下发生,而不是一直发生?

1 个答案:

答案 0 :(得分:0)

因为它只在负载下发生,我敢打赌消费者受到限制。尝试使用jconsole监视队列的大小。我会尝试在直接队列中查找大小限制。