【问题标题】:API gateway out of connections because of a slow micro service由于微服务速度慢,API 网关连接断开
【发布时间】:2019-07-28 20:30:40
【问题描述】:

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

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

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

我们尝试过的事情——

  1. 扩展 API 网关: 这作为临时解决方案很好,但很难预测激增的流量并显着增加我们的成本。

  2. 增加套接字:我们已经在我们的服务器上最大化了这个设置。

我们是否可以进行任何其他优化或架构更改以确保系统响应更好。

更新:

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

【问题讨论】:

  • 澄清:听起来你的 API 网关不是我最初假设的——Amazon API Gateway——因为它不会用完套接字。那是对的吗?如果不是,那是什么?它正在运行什么软件,它在您的堆栈中执行什么功能?

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


【解决方案1】:

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

Bulk Head

【讨论】:

    猜你喜欢
    • 2013-12-30
    • 1970-01-01
    • 2019-04-06
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    • 2021-02-01
    • 2018-10-14
    • 1970-01-01
    相关资源
    最近更新 更多