今天读了《大型网站技术架构:核心原理与案例分析》的大型网站架构演化这一章节,对网站的发展历程有了一个比较清晰的了解。
大型网站都是从小型网站开始发展的,小型网站初始阶段是只有一台应用服务器,应用程序、数据库、文件等所有资源都在一台服务器上。然后看过文章后边对小型网站的初始阶段描述后,感觉上学期所编写的河北省重大需求征集系统就可以归属与这类了,当然,自己写的还是小型里边比较烂的。随着网站发展,初始阶段的配置就不够使用了,需要升级了,这时就会分离应用服务和数据服务,此时会是三台服务器,分别是应用服务器、文件服务器、数据库服务器。而服务分离后不同的服务对硬件也就有了不同的需求,应用服务器是用来处理业务逻辑的,需要更快更强大的CPU;数据库服务用来进行磁盘检索和数据缓存,需要更快的硬盘和更大的内存;文件服务器用于存储用户上传的文件,需要更大的硬盘。这时的网站在我看来就算是步入正规的一个小网站了,而成为一个小网站后,或多或少肯定会有用户来登陆,如果网站内容方面不过关,肯定就不会有下文了。如果是内容比较吸引人的,那么网站就会迎来新的发展契机,这时就需要扩大网站的规模了,网站发展进入下一阶段。这是网站引入了缓存机制,利用缓存机制来提升网站性能,以应对越来越多的用户。网站的缓存机制分为两种:缓存在应用服务器上的本地缓存和缓存在专门的分布式缓存服务器上的远程缓存。在引入缓存机制后,数据访问压力得到有效缓解,之后的问题就是单一应用服务器能够处理的连接有限,在网站访问高峰期,应用服务器成为整个网站的瓶颈。这时使用应用服务器集群改善网站的并发处理能力,使用这种方法可以不断地为网站升级,个人感觉这是很有效的方法,而且猜测目前各大网站使用的估计都是这种方法吧。之后网站的瓶颈又回到了数据库方面,所以使用了数据库读写分离技术来提升数据库读写效率,以及之后的分布式文件系统和分布式数据库系统、分布式服务都是针对数据库方面的提升。而反向代理和CDN加速网站响应则是为了提升用户体验。而NoSQL和搜索引擎则是方便数据库使用的同时提升了用户的使用体验。这些工作完成后便是大型网站的基本发展历程了,大型网站之间也有规模大小的区别,不过其业务或者说是框架都是类似的。
大型网站架构技术的核心价值不是从无到有搭建一个大型网站,而是能够伴随小型网站业务的逐步发展,慢慢的演变成一个大型网站。技术因为业务而存在,没有业务为支撑,那么技术就是空的,或者讲是无用的技术。