网站架构的发展(一
这一周读了2本关于网站架构的书,分别是《大型网站架构》和《构建高性能的web站点》
个人感触最深的一点就是网站架构技术的发展和业务发展之间的关系。业务的发展推动着架构技术的发展,而架构技术的发展同样带给了业务新的可能性。
初始的网站一般都是以LAMP架构(Linux,Apache,Mysql,PHP)为基础的小型网站,这点也是由业务需求决定的。
大部分网站的发展之初,用户数量都是从0开始的,并且网站设计时也是朝着少量用户的基础上去发展的。
除了少部分大型公司在设计之初就已经确切的得知了目标用户的数量,以此为依据来构建中型或者大型的网站。
最初的LAMP服务器架构就是简单的应用程序,文件系统和数据库
所有后端代码,数据都放在一个服务器中。这样明显的一个问题就是随着用户访问的增多,数据量的增大,这样的架构就行不通了。
储存空间需要升级,应用端的用户请求需要更多的cpu来处理,文件系统也需要更多的资源来处理,所以架构就需要升级了。
于是我们将一个服务器拆成了3部分,应用服务器,文件服务器,数据库服务器。
这时就可以对这三个服务器进行分别的改造升级。这种解决思路和软件开发设计中的“高聚合,低耦合”的思路有很大的一致性。
拆分服务器,使得各个部分互相之间的影响降到最低,同时保持业务处理的一致性。这就是网站架构发展的“高聚合,低耦合”。
伴随着用户并发访问量的增加,网站的高可用性和高效性就会收到挑战。
高效性的解决方案一般是通过缓存来处理的。
用户发起请求到收到回复的时间是判断网站高效性的一个关键点,时间越短,那么网站的性能就越高。
而响应时间=发送时间+处理时间+传播时间
网站架构能做的大部分就是缩短处理时间。
同时,用户的访问还具有一个特性:80%的访问集中在20%的资源,所以,有效的缓存机制可以大大缩短处理时间。
具体的缓存机制有CDN,反向代理,数据库缓存,消息队列等。