【问题标题】:how do you scale a system from 1 request/sec to thousands of requests/sec如何将系统从 1 个请求/秒扩展到数千个请求/秒
【发布时间】:2021-01-28 18:29:27
【问题描述】:

一般系统设计问题: 有一个应用程序使用 lat,long 查询 DB 以获取地址并进行 API 调用以格式化地址。目前这些请求以每秒 1 个请求的速度处理,您如何将我们的应用程序扩展到 1000 个请求/秒。

【问题讨论】:

    标签: architecture scale system-design


    【解决方案1】:

    您需要使您的系统分布式。您将应用程序嵌入到微服务中,然后水平扩展以达到您需要的流量水平。更具体地说:

    • 应用程序可以处理的请求数量有限(假设 100 个请求/秒),因此您需要添加 10 个应用程序副本才能处理 1000 个请求/秒。
    • 您还需要在应用前面安装一个负载平衡器,以便在副本之间平均分配负载
    • 一旦进一步扩大,数据库将成为瓶颈,因此您可能需要考虑在该领域进行优化,例如:
      • 在 NoSQL 模型上设计数据库,因为 lat/long 数据的平面模型非常好地映射到 NoSQL 存储格式上,这在可扩展性和分布性方面具有很多优势。
    • 此外,一旦您扩展应用程序,您用于格式化地址的 API 也将成为瓶颈,因此如果它是第三方,您需要检查吞吐量限制并在扩展期间考虑它们,或者如果它在您的控制,您可以按照类似的程序来扩大它。

    【讨论】:

      猜你喜欢
      • 2019-08-21
      • 2018-07-12
      • 2021-04-03
      • 2017-03-12
      • 1970-01-01
      • 2017-01-07
      • 1970-01-01
      • 2021-01-08
      • 1970-01-01
      相关资源
      最近更新 更多