【问题标题】:WSO2 ESB endpoint using cached backend nameWSO2 ESB 端点使用缓存的后端名称
【发布时间】:2019-05-23 11:25:53
【问题描述】:

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

名称/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>

【问题讨论】:

    标签: wso2 wso2esb endpoint


    【解决方案1】:

    您能否检查您的 /etc/hosts 文件是否错误地将旧 IP 映射到域名 (somebackend.com)?这可能是因为 AFAIK ESB 不缓存 IP。也许重新启动 ESB 服务器也会有所帮助。

    【讨论】:

      【解决方案2】:

      AFAIR WSO2 ESB 不缓存端点 IP。您能否从 ESB 节点在“somebackend.com”上运行 traceroute 命令并检查 DNS 是否从您的机器解析?

      【讨论】:

        【解决方案3】:

        Wso2 会将连接详细信息存储在连接池中,并在下一次调用而不是新调用时重复使用相同的连接详细信息。我们在调用端点之前添加了以下属性,以便为解决我们问题的每个调用启动一个全新的连接。

        仅供参考:https://docs.wso2.com/display/ESB490/HTTP+Transport+Properties

        感谢大家的支持。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-07-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多