Architecture 如何将系统从每秒1个请求扩展到每秒数千个请求

Architecture 如何将系统从每秒1个请求扩展到每秒数千个请求,architecture,scale,system-design,Architecture,Scale,System Design,一般系统设计问题: 有一个应用程序使用lat查询DB,渴望地址,并进行API调用以格式化地址。目前,这些请求以每秒1个请求的速度处理,您如何将我们的应用程序扩展到每秒1000个请求。您需要使您的系统分布式。你将你的应用嵌入到一个微服务中,然后水平扩展它以达到你需要的流量水平。更具体地说: 该应用程序可以处理的请求数量有限(比如说100个请求/秒),因此您需要添加10个应用程序副本才能处理1000个请求/秒 您还需要在应用程序前面安装一个负载平衡器,以便在副本之间均匀分配负载 一旦进一步扩展,数

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

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

  • 该应用程序可以处理的请求数量有限(比如说100个请求/秒),因此您需要添加10个应用程序副本才能处理1000个请求/秒
  • 您还需要在应用程序前面安装一个负载平衡器,以便在副本之间均匀分配负载
  • 一旦进一步扩展,数据库将成为瓶颈,因此您可能需要考虑该领域的优化,例如:
    • 在NoSQL模型上设计DB,因为lat/long数据的平面模型非常适合NoSQL存储格式,这在可伸缩性和分布性方面具有很多优势
  • <> LI>而且,当你缩放应用程序时,你用来格式化地址的API也会成为瓶颈,所以如果它是一个第三方,你需要检查吞吐量限制并在放大过程中考虑它们,或者如果它在你的控件中,你可以遵循类似的程序来扩展它。