在我的案例中,我通过调用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