目前我正在开发基于Web的应用程序。我想知道在设计可扩展的基于Web的应用程序时,设计师应该注意哪些关键因素?
目前我正在开发基于Web的应用程序。我想知道在设计可扩展的基于Web的应用程序时,设计师应该注意哪些关键因素?
仔细阅读highscalability.com应该会让你有一些想法。我强烈推荐亚马逊的文章。
我从其他答案中感受到了一个普遍的混淆,即可扩展性和性能之间的区别。高性能意味着响应速度快。高可扩展性意味着无论有多少其他人同时使用网站,您都可以得到响应。这是一个很大的区别。
实际上,为了获得良好的可扩展性,您实际上必须牺牲一些性能。可扩展性的一般模式是分布式计算。将功能因素分解成集群服务器的不同层(Web、业务规则、数据库)是可扩展性的通常方法。那个额外的往返会稍微减慢页面加载速度。
每个人总是想专注于高可扩展性,但也不要忘记,对于向客户出售许可证并自行托管应用程序的软件供应商来说,缩小规模与扩大规模同样重要。一个可以在单个服务器上运行十个用户,但也可以配置为在十个服务器的 Web 集群、三个服务器的中间层和四个服务器的数据库集群上运行 10,000 个用户的应用程序将是一个设计良好的可扩展系统。
没有特别的方法。只需要使用适当的设计技术(如关注点分离等)编写应用程序,然后在应用程序完成或接近完成时进行性能测试。那时你会发现真正的瓶颈 - 它们可能不是你一开始猜测的那样。这就是从一开始采用适当的设计的好处所在 - 它使得轻松地进行更改以修复瓶颈。
class="odd"
属性,生成/下载/呈现页面也很可能需要更长的时间。 - ChssPly76