目前,我正在使用 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: