7

目前,我正在使用 Camel 作为编排引擎(它接收 HTTP POST 请求,这导致 Camel 代码向某些外部服务器发送 HTTP POST/PUT/GET 请求,直到最后 Camel 发送(希望)200 OK 回第一个 HTTP POST 请求的发起者)。

加载工具 <-> Camel 代码 <-> 外部服务器

我正在使用骆驼 2.9.2。

为了检查性能,我使用 httperf 向我们的 Camel 实现发送大量 HTTP POST 消息。当 httperf 配置为以每秒 100 个请求的速率发送请求时,我经常看到以下错误:

错误 (MessageId: ID-wpm-seal-59304-133965736935 6-0-3482128 on ExchangeId: ID-wpm-seal-59304-1339657369356-0-3482126) 传递失败。尝试交付后用尽:1 抓到:org.apache.camel。component.http.HttpOperationFailedException:HTTP 操作调用http://anExternalServer.com:7000/M2M/resources/m2mSubscription ?subscriptionId=32477000000 失败,状态码:500

我想知道如何调试以查看导致此错误的原因...

还有这意味着什么:1)这是否意味着骆驼无法进一步处理请求?2)这是否意味着Camel试图向外部服务器发送HTTP消息,但是该服务器没有回复/接受请求(可能由于过载而无法接受请求)?-> 这对我来说看起来最合乎逻辑,但是wireshark 跟踪显示Camel 没有尝试建立到该外部服务器的TCP 连接......?!3) 或...

也许我遇到了 TCP 连接数的限制?还是线程?

这是完整的错误转储:

DefaultErrorHandler 错误 (MessageId: ID-wpm-seal-59304-133965736935 6-0-3482128 on ExchangeId: ID-wpm-seal-59304-1339657369356-0-3482126) 的传递失败。尝试交付后用尽:1 抓到:org.apache.camel。component.http.HttpOperationFailedException:HTTP 操作调用http://anExternalServer.com:7000/M2M/resources/m2mSubscription ?subscriptionId=32477000000 with statusCode:500 org.apache.camel.component.http.HttpOperationFailedException:HTTP 操作调用http失败://anExternalServer.com:7000/M2M/resource 52)[骆驼核心-2.9。2.jar:2.9.2] 在 org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45)[camel-core-2.9.2.jar:2.9.2] 在 org.apache.camel.processor .DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90)[camel-core-2.9.2.jar:2.9.2] at org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:304)[camel- core-2.9.2.jar:2.9.2] at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)[camel-core-2.9.2.jar:2.9.2] at org.apache .camel.processor.Pipeline.process(Pipeline.java:117)[camel-core-2.9.2.jar:2.9.2] at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)[ camel-core-2.9.2.jar:2.9.2] 在 org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:

4

1 回答 1

3

您应该查看 http 服务器端,因为 HTTP 错误代码 500 是服务器上的故障,而不是您使用 Camel 的客户端。

于 2012-06-16T13:42:48.230 回答