我是一名初级软件开发人员,没有系统设计经验,目前正在准备进行系统设计面试。我在许多网站上都读到过,我必须对要设计的系统规模做出一些估算。为了帮助我专注于扩展,分区,负载平衡和缓存。
这些估算值的示例:
我的问题是,我不知道如何处理这些估计?
在访谈中,我可以建议增加负载平衡和更多主机,添加缓存层,添加主从数据库服务器,等等,以提高性能,我可以讨论每种解决方案的权衡和将来选择哪种解决方案。但是,为什么我要提供这些数字呢?
例如,每秒的请求数量将如何影响我的设计? 主机每秒有最大数量的请求吗?数据库管理系统是否具有最大大小?我认为这两个问题的答案都是“否”,这取决于许多因素,确定主机的数量或确定数据库分片的需求或现实生活中的主从服务器设计取决于实际的实验和测试。请纠正我,如果我弄错了,谢谢!
答案 0 :(得分:3)
例如每秒的请求数量将如何影响我的设计? 每秒10个请求,不需要负载平衡器,每秒10,000个请求,您需要查看负载平衡器,无状态扩展等
主机每秒有最大数量的请求吗?是的,这不是绝对的,但是在某些时候,您将需要进行体系结构设计以提高可伸缩性。
数据库管理系统是否具有最大容量?实际上,是的。它还使您考虑使用NoSQL选项等之类的东西。如果要查看PB级数据,则可能需要三思而后行将它们全部放入关系数据库中。
在现实生活中,他们并不总是那么干,但它可以开始对话,并将其重点放在最重要的缩放比例上。