由于微服务缓慢,API网关没有连接

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

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

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

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

我们尝试的事情 -

  1. 扩展API网关:这可以作为临时修复,但很难预测浪涌流量并显着增加我们的成本。
  2. 增加套接字:我们已在服务器上最大化此设置。

我们可以做出任何其他优化或架构更改,以确保系统响应更好。

更新:

  1. 我们的堆栈主要是Node.js
amazon-web-services amazon-ec2 microservices scale api-gateway
1个回答
2
投票

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

Bulk Head

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