【发布时间】:2012-06-26 09:52:19
【问题描述】:
我们有一个代理服务,它执行以下操作 1.调用后端服务获取客户端ID 2.使用为该客户端ID配置的端点(客户端端点)并将原始请求转发到该端点。 3.返回对请求的响应
之前我们在将请求转发到客户端端点时将 OUT_ONLY 属性设置为 true(步骤 2)。 但是我们现在必须为客户端端点使用故障转移端点配置。所以我们删除了 OUT_ONLY 属性并使用了 以下故障转移配置。客户端端点不会为转发的请求返回任何响应。 因此,注册的回调没有得到任何响应,并且随后被 Timeouthandler 清除。 最近,我们面临一些 CPU 峰值和 ESB 引发的 OutOfMemory 错误。 我们怀疑突触回调处理程序正在使用大部分系统资源并且无法恢复。 由于客户端端点没有返回响应,此配置是否会创建任何 OutOfMemory 错误(如果经过压力测试)? 请提出建议。
<endpoint xmlns="http://ws.apache.org/ns/synapse" name="client_forward_endpoint_110">
<failover>
<endpoint name="primary">
<address uri="--primary endpoint--">
<enableAddressing />
<timeout>
<duration>30</duration>
<action>discard</action>
</timeout>
<markForSuspension>
<errorCodes>101504, 101505, 101500</errorCodes>
<retriesBeforeSuspension>3</retriesBeforeSuspension>
<retryDelay>1</retryDelay>
</markForSuspension>
<suspendOnFailure>
<initialDuration>1000</initialDuration>
<progressionFactor>2</progressionFactor>
<maximumDuration>64000</maximumDuration>
</suspendOnFailure>
</address>
</endpoint>
<endpoint name="secondary">
<address uri="--secondary endpoint--">
<enableAddressing />
<timeout>
<duration>30</duration>
<action>discard</action>
</timeout>
<markForSuspension>
<errorCodes>101504, 101505, 101500</errorCodes>
<retriesBeforeSuspension>3</retriesBeforeSuspension>
<retryDelay>1</retryDelay>
</markForSuspension>
<suspendOnFailure>
<initialDuration>1000</initialDuration>
<progressionFactor>2</progressionFactor>
<maximumDuration>64000</maximumDuration>
</suspendOnFailure>
</address>
</endpoint>
</failover>
【问题讨论】:
标签: esb wso2 endpoint failover wso2esb