这里有很多关注设计Web应用程序但我似乎在所有这些讨论中都缺少一些东西。似乎每个人都在关注他们网站的设计,以允许大量的访问者访问它,从而给服务器带来巨大的压力。但是,如果有人正在为朋友和家人设计一个网站呢?或者只是一个仅供公司500名员工使用的内部网站?虽然这都是网页设计,但在设计Google搜索或StackOverflow等网站以及www.geocities.com \ alex \ myfamilyhistory.html等类似网站时仍存在巨大差异。 (哇,我记得Geocities。我一定老了!)
所以,我的问题很简单:在设计新网站时,每天管理50个访问者,5000个访问者和500.000个访问者的网站之间最重要的区别是什么?
(嗯,硬件方面,只需添加更多服务器。但我只关注软件设计!)
答案 0 :(得分:3)
软件方面,你应该始终认为你的设计和架构不限制任何抽象访问者限制。
使用众所周知的最佳做法。避免昂贵的字符串操作创建一个体面的数据库架构在适当的位置放置索引和聚簇索引。避免因为你没有那么多的访问者而根据没有人会注意到的安慰进行快速攻击。
当时机成熟时,您会发现只需要获得更多硬件而不是完全重写您的应用程序。
答案 1 :(得分:2)
有许多设计模式永远不会在具有少量用户或请求的应用程序中使用,其中大多数模式都是与负载分配相关的模式。
例如,负载分配的一种设计模式是将数据放在集群(树结构)服务器中。每个请求都指向一个服务器,而服务器又说该用户的数据在给定的集群中。它没有数据本身,它只是将用户重定向到第二个集群级别。
第二个集群级别(或第一个树级别)中的服务器可以拥有数据(或部分数据),也可以将用户重定向到第三个集群级别。同样的事情继续进行,直到请求到达已经拥有用户数据的服务器,因此生成响应并发回给他。
此设计模式(有时称为路由)是您永远不会使用的方案的示例,除非您有一个包含大量请求的应用程序。例如gmail使用这种设计,而gmail的web界面的最后一次失败是因为路由服务器因请求而过载。