使用缓存的后端名称的WSO2 ESB端点

时间:2019-05-23 11:25:54

标签: wso2 wso2esb endpoint

我们可以看到从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>

3 个答案:

答案 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

感谢支持人员。