为什么在系统设计访谈中需要估计系统约束?



我是一名初级软件开发人员,没有系统设计经验,目前正在准备系统设计面试。我在许多网站上读到,我必须对我将要设计的系统的规模提出一些估计。为了在我专注于扩展、分区、负载平衡和缓存时帮助我。

这些估计的示例:

  • 活跃用户总数
  • 每秒请求总数
  • 每秒和每年保存的数据总量

我的问题是,我不知道如何处理这些估计?

在面试中,我可以建议添加负载平衡和更多主机,添加缓存层,添加主从数据库服务器,...等等,为了提高性能,我可以讨论每个解决方案的权衡以及将来选择哪种解决方案。但是我为什么要带着这些数字来呢?

例如,每秒的请求数将如何影响我的设计? 主机每秒是否有最大请求数?数据库管理系统是否有最大大小?我认为这两个问题的答案都是否定的,这取决于许多因素,确定主机的数量或是否需要数据库分片或现实生活中的主从服务器设计取决于实际实验和测试。如果我弄错了,请纠正我,谢谢!

例如,每秒的请求数将如何影响我的设计?每秒 10 个请求,不需要负载均衡器,每秒 10,000 个请求,您需要查看负载均衡器、无状态扩展等

主机每秒是否有最大请求数?是的,这不是绝对的,但在某些时候,您需要在架构上设计更多的可伸缩性。

数据库管理系统是否有最大大小?实际上,是的。 它还使您考虑诸如NoSQL选项之类的内容。 如果您正在查看 PB 级数据,您可能应该三思而后行,将其全部放入关系数据库中。

在现实生活中,它们并不总是一刀切的,但它可以开始对话,并将其集中在最重要的比例因素上。

最新更新