0

我在我的应用程序中使用 apache camel。我camelContext producerTemplate用来发送消息:

template.send("seda://destination")

消费者看起来像这样:

from("seda://destination").process(new Processor {
    override def process(exchange: Exchange): Unit = {
        // some processing
    }
})

这在我的开发环境中运行良好。但是在生产中,尽管生产者发送了消息,但我根本看不到消费者的控制权。我也没有在日志中看到任何错误。有没有办法调试这个?dev 和 prod 环境之间的唯一区别是我设置了一个代理来与 Internet 上的服务进行通信。

4

1 回答 1

0

该应用程序基本上是使用推特流 API 拉推文。一旦一条推文进来,我正在使用骆驼的producerTemplate. 有一个消费者正在接收这条消息。在这个消费者中,有一个组件正在对另一个服务进行 http 调用。但在我的生产环境中,我只能通过 http 代理与外部世界通信。进行 http 调用的库正在使用apache commons httpClient. 由于未将代理添加到 thishttpClient中,因此消费者只能处理一条推文。我最初使用的是seda. 我把它改成direct并看到我的流程在处理完一条推文后就卡住了。主要问题是它没有超时或抛出任何错误,因此很难缩小问题范围。

于 2014-07-18T02:32:28.713 回答