由于微服务缓慢,API网关断开连接

时间:2019-03-07 03:24:18

标签: amazon-web-services amazon-ec2 microservices scale api-gateway

我有一个API网关G,可与多个服务S1, S2 ...等连接。

流量模式是如此独特,以至于在某些时候,我的流量激增(10M req / min),每个人都试图从S1访问内容。因此,S1开始变得有点慢,因为我的网关G在连接S1时开始耗尽其所有套接字连接,现在无法再与其他服务连接。

由于S2没有可用的套接字,试图访问对我们的业务至关重要的其他服务(例如G)的用户无法访问它们。

我们尝试过的事情-

  1. 扩展API网关: 作为临时解决方案,这很好,但是要预测流量激增确实非常困难,并且最终会大大增加成本。

  2. 增加套接字:我们已在服务器上使此设置最大化。

我们还可以进行其他优化或架构更改以确保系统响应更好吗。

更新:

  1. 我们的堆栈主要是Node.js

1 个答案:

答案 0 :(得分:2)

这是一个常见问题,其中一项服务比其他服务获得更多的负载。您可以在网关上使用称为 Bulk Head 的云模式。在这种模式下,您基本上将资源(例如连接池)分配到所有服务中,因此,没有任何一个服务能够消耗所有资源。我不确定您使用的是哪种技术堆栈,因此您必须找到适合您的库,例如DotNet核心我们使用Polly。另一个是Hystrix。

Bulk Head