我们可以看到从ESB到后端系统旧IP的呼叫,而不是新IP。例如
Wso2 ESB端点配置为:somebackend.com
如果我们执行nslookup来查看系统的IP。
$nslookup somebackend.com
10.20.30.40
如果我们使用主机名为“ somebackend.com”的tcpdump跟踪来自ESB的流量,则呼叫将转到系统的旧IP(somebackend.com),即50.60.70.80,而不是新IP 10.20.30.40 < / p>
名称/ Ip / DNS名称是否缓存在WSo2 ESB中的任何位置? 有任何建议,请解决此问题。 下面是配置的终结点文件。
<endpoint xmlns="http://ws.apache.org/ns/synapse"
name="conf//endpoint/endpointname">
<property name="System-Name" value="Backend" scope="default" type="STRING"/>
<http uri-template="somebackend.com"
method="get">
<suspendOnFailure>
<errorCodes>-1</errorCodes>
<initialDuration>0</initialDuration>
<progressionFactor>1.0</progressionFactor>
<maximumDuration>0</maximumDuration>
</suspendOnFailure>
<markForSuspension>
<errorCodes>-1</errorCodes>
</markForSuspension>
</http>
</endpoint>
答案 0 :(得分:0)
您可以检查/ etc / hosts文件中是否将旧IP错误地映射到域名(somebackend.com)吗?这可能是有可能的,因为AFAIK ESB不缓存IP。也许重新启动ESB服务器也会有所帮助。
答案 1 :(得分:0)
AFAIR WSO2 ESB不缓存端点IP。您可以从ESB节点在“ somebackend.com”上运行traceroute命令,并检查DNS如何从您的计算机中解析吗?
答案 2 :(得分:0)
Wso2将连接详细信息存储在连接池中,并在下一个调用中重新使用相同的连接详细信息,而不是新的。在对端点进行呼叫之前,我们在属性下面添加了属性,以便为每个呼叫启动一个全新的新连接,从而解决了问题。
仅供参考:https://docs.wso2.com/display/ESB490/HTTP+Transport+Properties
感谢支持人员。