我目前正要重新设计一个运行的,特殊目的和德语社交网络应用程序。当前版本如此混乱,我们决定从头开始。我不想再遇到所有问题所以我一直在思考和阅读很多:
I argued in a blogpost对于我们系统的体系结构,我会使用如上所述的重要性顺序:
可伸缩性>>可维护性>>性能
这些结果让我感到惊讶,因为我一直认为性能是创建可扩展系统的关键。
答案 0 :(得分:0)
可扩展性与性能不同。
性能通常以单个请求执行速度来衡量。在我的本地机器上有一个其他用户,我的请求通常非常快,10毫秒或更低。现在将它放在面向外部的具有50,000个并发用户的Internet服务器上,您将看不到接近这种速度的任何地方。
可扩展性是集合中的性能 - 您可以支持大量并发请求的程度,并且系统仍能在合理的时间内做出响应。它可能会成为您心中最关心的问题,因为如果只有少数用户可以在任何特定时间使用它,那么社交网站会有什么用呢?您的用户增长也可能最终呈指数级增长,因此您需要处于可以轻松扩展到更多硬件的位置(在云端或本地数据中心)。
如果是社交网站,我会将这些项目排名为:
可伸缩性>表现>维护
答案 1 :(得分:0)
我认为应该是
可维护性>>可伸缩性>>性能
对我来说,可扩展性是一种特殊的性能问题。性能还包括响应时间。但我认为可扩展性与响应时间一样重要。特别是对于社交网络。但是在这种比较中两者都很接近。
一般而言,如果出现性能问题,您最好处理它们。如果您尝试针对您未遇到的问题优化代码,则很可能只会浪费您的时间。您可以做的是模拟页面上的用户流量以强制出现性能问题。
对我来说最重要的是可维护性,因为它更贵。 stackoverflow博客上有一篇关于它的帖子,但我现在找不到它。如果您只是购买更好/更多硬件并将其解决问题,那么性能问题大多可以解决。硬件相对便宜并且价格不断下降。编程时间非常昂贵。