Mule ESB 客户端超时
Posted
技术标签:
【中文标题】Mule ESB 客户端超时【英文标题】:Mule ESB Client timeout 【发布时间】:2019-02-16 10:08:16 【问题描述】:我有一个 esb,我可以通过它进行 Web 服务调用。 Web 服务调用在组织内运行良好。我们将 Mule ESB 版本从 3.2.2 升级到 3.8.5。这两个版本都适用于我们,但是当供应商调用 Web 服务时,他会收到一个 Socket Time out 错误。 我们在 Mule ESB 中启用了 TLSv1.2。 超时发生在 20 秒后。但是,我们没有将超时设置为 20 秒,对于 WS,它设置为 60 秒。 客户端使用.net 技术。当我们使用邮递员在本地调用 WS 时,我们不会遇到任何问题。 WS 调用是接受 xml 的简单 POST 请求。客户端首先获取标头信息,但在收到完整响应之前发生超时。这与多部分表单数据有关吗?让我知道你的想法。
【问题讨论】:
你如何启动 mule 服务器?通过任意点工作室或独立服务器 作为独立服务器使用 【参考方案1】:默认情况下,时间段在 mule 中为 1000 毫秒,但您可以通过参数 responseTimeout 设置另一个值。
<http:outbound-endpoint address="http://test.com/ws" method="post" exchange-pattern="request-response" responseTimeout="5000"/>
但对于使用 Web 服务的理想情况, 当你配置Webservice Consumer连接器时,转到-->References-->Http Configuration reference-->点击Edit-->Other settings-->Response Time out as 60000 (也就是60秒)。然后你的esb调用就可以等待了直到 60 秒。取决于响应时间,您可以增加或减少超时。希望这会有所帮助..
【讨论】:
我们正在尝试关注- 我们想看看修改后客户端是否可以访问ESB。我们认为这是多部分表单数据的问题,这就是为什么只接收到标题信息而客户端没有收到完整的响应。此外,查看以下想要使用在 Mule ESB 3.4.x 之前使用的 HttpMuleMessageFactory 客户端仍然出现以下错误-java.net.SocketException:连接重置连接丢失。响应有 0 行读取标题时连接丢失。 配置后,客户端超时似乎立即发生。有什么建议吗?【参考方案2】:将 Mule 升级到 3.8 版,您还应该将流程移植到新组件。使用http:request
替换http:outbound-endpoint
。配置responseTimeout
属性。我以前也遇到过这样的情况。尝试更改parseResponse
或/和requestStreamingMode
。根据 WS,Mule 可能会遇到等待。
<http:request-config name="requestConfig" ... responseTimeout="120000" />
<http:request path="/api/v1/orders" method="POST" config-ref="requestConfig">
<!-- configure the elements you need -->
</http:request>
顺便说一句,Mule 也有一个用于 Webservice (SOAP) 消费的组件。如果您需要从 Mule 3.3(或其他)迁移到任何版本的帮助,请告诉我。
【讨论】:
以上是关于Mule ESB 客户端超时的主要内容,如果未能解决你的问题,请参考以下文章
EnjoyingSoft之Mule ESB基础系列第二篇:Mule ESB基本概念
EnjoyingSoft之Mule ESB基础系列第三篇:Mule message structure - Mule message结构
Mule ESB-3.Build a webservice proxy