读《大型网站技术架构:核心原理与案例分析》第一章:大型网站架构演化
写在前面
从开始写代码到现在,已经做了好几个项目了,BS和CS的都有,一直都以一个码农自居。但,作为一个进步的程序员,都有一个成为架构师的理想。于是,在平时的工作中,也积极的去看各种书籍,看园子里面的精品文章。希望,在这条追逐梦想的道路上,能够留下点点滴滴,也算是对知识的一种巩固,一些分享。
读书感受
快下班的时候,看了该书的第一章。算是对网站的架构演化有了一些认识。
(1)初始网站的架构:一台服务器,应用程序,数据库,文件都在一台服务器上面。LMAP足矣。
(2) 二级网站的架构:应用服务和数据服务分离,网站的并发处理能力和数据存储空间得到很大改善。
(3)三级网站的架构:加入缓存,包括服务器本地缓存和分布式缓存,数据访问压力得到很大改善。
(4) 四级网站的架构:使用应用服务器集群,通过负载均衡调度服务器,可以将访问请求分发到服务器集群中的人和一台,解决网站的负载压力。
(5) 五级网站的架构:数据库读写分离,应用服务器在写数据的时候,访问主数据库,主数据库通过主从复制机制将数据同步更新到从服务器,当应用服务器读数据的时候,直接去从数据库获得数据。为了便于应用程序访问读写分离后的数据库,通常在应用服务器端使用专门的数据访问模块,使数据读写分离对应用透明。
(6)六级网站的架构:使用反向代理和CDN加速网站响应,为了尽早将数据返回给用户,加快用户的访问速度,同时减轻后端服务器的压力。
(7)七级网站的架构:使用分布式文件系统和分布式数据库系统,最常用的是业务分库,把不同业务的数据库部署在不同的物理服务器上。
(8)八级网站的架构:使用NoSql和搜索引擎,对可伸缩的分布式特性具有更好的支持,应用服务器则通过一个统一的数据访问模块访问各种数据,减轻应用程序管理诸多数据源的麻烦。
(9)九级网站的架构:业务拆分,将一个网站拆分成许多不同的应用,每个应用独立部署和维护。应用之间可以通过一个超链接建立关系,也可以通过消息队列进行数据分发,最多的是通过访问同一个数据存储系统来构成一个关联的完整系统。
(10)10级网站的架构:分布式服务,每个应用系统都需要执行许多相同的业务操作,可将这些共用的业务抽取出来,独立部署,通过分布式服务调用共用业务服务完成具体业务操作。
到此,大型网站架构演化也差不多了。虽然现在公司的项目还处在第二个级别,但是,从该书中,我了解到了网站的进化,和其中涉及到的技术手段,算是获益颇多。