mule流http请求超时调整

问题描述 投票:0回答:1

我有一个 Mule 流,它从 Anypoint 队列读取有效负载,然后通过 HTTP 请求将它们发送到 REST 端点。然而,我遇到了一个困境。当我对 HTTP 请求使用默认超时(30 秒)时,REST 端点经常会超时。然而,将超时增加到 120 秒后,消息开始在 Anypoint 队列中堆积,导致队列中单个消息处于飞行状态而积压。

有没有推荐的解决方案可以有效处理这种情况?先感谢您。 顺便说一句,我没有在其他集成框架(例如 spring 集成)中遇到这样的问题

mule httprequest mulesoft
1个回答
0
投票

这是一个典型的生产者消费者问题。入站队列是生产者。 REST 端点是消费者。该问题是由于您的消费者回复缓慢造成的。对于 HTTP 请求来说,30 秒通常是一个较长的时间。增加超时并且端点响应缓慢实际上会加剧问题,因为您的流程无法确认队列的消息处理已完成,从而导致队列入站超时。

120 秒似乎有点过分了。如果您的应用程序等待太多并累积请求,它最终可能会耗尽资源来继续工作。超时可以作为一种故障保护措施,以更早地释放资源。

解决方案是确保 REST 服务在合理的时间内返回。这可能超出你的控制范围。你没有提供细节。如果可能的话,您可能需要调整队列的超时。减少流的并发性也有助于保护资源,但代价是潜在的可扩展性。

© www.soinside.com 2019 - 2024. All rights reserved.