WSO2 AM 端点超时无法正常工作

WSO2 AM endpoint timeout doesn't work correctly

就我而言,我通过调用 API 进行了测试。以下是我选择的日志:

2020-10-05 15:38:43,585 - sThroughMessageProcessor-12 - DEBUG g.apache.synapse.core.axis2.Axis2FlexibleMEPClient: [] Setting Timeout for endpoint : Endpoint [IDGen--v1.0_APIproductionEndpoint], URI : http://localhost:8082/sequence/batchId/next?length=20 to static timeout value : 15000
...
2020-10-05 15:39:03,660 - sThroughMessageProcessor-13 - DEBUG .apache.synapse.core.axis2.SynapseCallbackReceiver: [] Callback removed for request message id : urn:uuid:be12d50b-503b-4095-a296-ee36f9964d29. Pending callbacks count : 0
2020-10-05 15:39:03,661 - sThroughMessageProcessor-13 - DEBUG .apache.synapse.core.axis2.SynapseCallbackReceiver: [] Synapse received an asynchronous response message

您可以看到,我们将端点超时设置为 15 秒。而且,日志显示回调是在 15:38:43 创建的,并在 15:39:03 删除,因此需要 20 秒。

在监控过程中,我发现它可以正常工作,但有时我会不正确。

你能建议我调查根本原因的方法吗?

PS: 我设置

'synapse.global_timeout_interval'=600000
'http.socket.timeout'=610000

注册的回调不会在端点超时后立即删除。有一个超时处理程序,它会定期检查响应和端点超时。所以 timeout_handler_interval[1] 用于定义此超时,并且可以延迟删除已注册的回调。减小这个值可以减少这个延迟,但是对GW是一个开销。

所以您遇到的问题不是突触网关的预期行为。

[1] https://docs.wso2.com/display/EI611/Configuring+synapse.properties