0

当我开始负载测试时,EI 日志中会显示警告消息。
WARN - TargetHandler http-outgoing-519: Request not started while the handler is in an inconsistent state RESPONSE_DONE
WARN - SynapseCallbackReceiver Synapse received a response for the request with message Id : urn:uuid:38d9964b-4fec-4989-ae32-957f9636fa52 But a callback is not registered (anymore) to process this response

这些警告显示呼叫中介何时调用后端。
这不能超时,因为没有调用故障序列。

单次调用不会生成这些警告。警告仅在负载测试下出现。

我该如何解决这些警告?

编辑:
我记录消息:
2020-12-17 12:06:35,671 - 调用后端
2020-12-17 12:06:35,681 - 警告
2020-12-17 12:06:35,706 - 来自后端的响应

警告后,消息被进一步正确处理

4

1 回答 1

0

以下 WARN 消息的解释。

WARN - SynapseCallbackReceiver Synapse received a response for the request with message Id : urn:uuid:38d9964b-4fec-4989-ae32-957f9636fa52 But a callback is not registered (anymore) to process this response

在 WSO2 EI 中,请求通过 PassThrough Transport 以异步方式处理。假设 EI 服务器收到一个请求。然后使用单个线程来处理请求并执行中介。在请求发送到外部后端之前,在回调存储中注册一个回调并将线程释放到线程池中。当接收到特定请求的响应时,另一个线程用于关联回调并处理响应。如果收到响应或在端点超时之后,则从回调存储中清除回调。

如果在超时后收到响应(由于后端的缓慢),则记录上面的 WARN 消息,因为回调在回调存储中不可用。

我假设您的后端随着负载变慢。您可以通过直接点击后端服务的负载来检查这一点。

由于 EI[1] 中的状态机不一致,似乎记录了另一条 WARN 消息。如果可以,请分享与流程相关的完整突触配置。

[1] https://wso2.com/library/articles/2014/04/demystifying-wso2-esb-pass-through-transport-part-iii

于 2020-12-22T13:41:20.270 回答