《大型网站技术架构》读书笔记 - 网站的技术升级路线
本文描述网站从小到大演变过程中的技术升级路线;
1.初始架构
一台服务器,应用、DB、文件都在一块,使用经典的LAMP模式构建整个站点;
优点很明显,开发部署都简单,船小好掉头,做不起来也亏不了多少;
2.应用服务与数据分离
随着访问量的增长,出现问题了:web性能变差,数据存储空间不够
这时候需要更多的服务器,首要任务是将数据库分离出来,单独占用一台服务器,如果文件读写多,需要增加文件服务器;不同的服务器对硬件的要求也不尽相同:
应用服务器需要处理大量业务逻辑,这需要更强的CPU;
数据库服务器需要快速磁盘检索和数据缓存,这需要更快的硬盘和更大的内存;
文件服务器需要存储用户上传的文件,需要更大的硬盘;
3.使用缓存改善网站性能
访问量持续增长,web性能再次变差;
考虑使用缓存改善网站性能;web的访问规律:80%业务访问集中在20%的数据上;使用缓存,数据库压力得到有效缓解;
缓存可通过以下方式增加:
增加应用服务器本地缓存,这个最直接,也最简单;
增加远程分布式缓存集群;当本地的内存不足以放下需要缓存的数据时,就只有通过分布式;
使用类似Memcached之类的开源缓存产品,缓存更多的数据;
4.应用服务器集群化
随着网站的成长,单一应用服务器成为网站瓶颈;
解决方案:应用服务器集群化提高网站并发处理能力;
做成集群的关键是增加负载均衡服务器来调度应用集群
5.数据库读写分离
问题:当增加缓存之后,随着访问量的持续增长,数据库再次出现问题:数据库负载压力过高
解决方案:数据库读写分离
利用数据库主从热备功能,实现读写分离;读写分离的细节这篇文章讲的很清楚了,就不多说,有需要的请参考:http://www.cnblogs.com/qlee/archive/2011/04/08/2009738.html
6.使用反向代理和CDN
问题:网站做大,全国甚至全球各区域的访问量都来了,但是各区域的访问速度差别巨大;
解决方案:使用反向代理和CDN
CDN和反向代理基本原理都是缓存,CDN部署在网络提供商的机房,用户请求最近的节点访问;而反向代理则部署在网站的中心机房;
7.使用分布式FS和分布式DBS
问题:应用集群如果将session管理做好,或做成无状态的应用集群,可达到线性伸缩;而数据库的压力却不是很好解决;
解决方案:使用分布式数据库拆分,可使用的方法有:
单表拆分:将不同的表放到不同的库中,从而降低单个数据库的结点的负载;这样带来的问题就是不同库中的表无法做join操作;
另一种方法就是按业务拆分,将属于同一业务的表划分到一个库中,从而有效降低数据库负载,同时在业务逻辑实现上不至于过于复杂;
8.使用NoSQL和搜索引擎
问题:出现海量数据存储和检索的需求
解决方案:使用NoSQl产品分布式部署来支持海量数据的查询和存储;
9.业务拆分
按照业务来划分子系统,按产品线划分系统,通过分布式服务来协同工作;
附:思维导图
卓越亚马逊地址: 《大型网站技术架构》
点击查看原图
Posted by: 大CC | 03APR,2014
博客:blog.me115.com
微博:新浪微博
相关推荐
大型网站技术架构_核心原理与案例分析_李智慧 pdf
《大型网站技术架构》读书笔记思维导图,初始架构、服务数据分离、缓存改善性能、服务器集群化、数据库读写分离、反向代理CDN、分布式FS/DBS、NOSQL和搜索引擎、业务切分
李智慧老师的大型网站技术架构的读书笔记
《技术人的管理之路》读书笔记 --思维导图 《技术人的管理之路》读书笔记 --思维导图 《技术人的管理之路》读书笔记 --思维导图 《技术人的管理之路》读书笔记 --思维导图 《技术人的管理之路》读书笔记 --思维导图 ...
开发资料技术资料读书笔记----ARM汇编_编程非常好的技术资料.zip
大型网站技术架构笔记3.docx
Jsp-Servlet复习笔记-----第3章 Servlet技术 - 堕落天使 - JavaEye技术网站.mhtJsp-Servlet复习笔记-----第3章 Servlet技术 - 堕落天使 - JavaEye技术网站.mht
《学会提问》读书笔记-秋叶、《学会提问》读书笔记-秋叶、《学会提问》读书笔记-秋叶、《学会提问》读书笔记-秋叶、《学会提问》读书笔记-秋叶、《学会提问》读书笔记-秋叶
在阅读了《韩顺平 大型门户网站核心技术-Mysql优化-笔记***.pdf》文档之后,可以了解到关于MySQL数据库优化的多个关键技术和方法。以下是根据文档内容总结的知识点: 1. MySQL数据库优化技术主要包含以下方面: - ...
学生读书笔记共享网站-学生读书笔记共享网站代码-学生读书笔记共享平台-学生读书笔记共享平台代码-学生读书笔记共享项目-学生读书笔记共享项目代码-学生读书笔记共享代码 1、技术栈:java,springboot,vue,ajax,...
冰河整理的全网首个开源的以实战案例为背景的渗透实战笔记,全书共442页,共计37万字(不计空格)。整本书的内容涵盖:Kali基础、渗透工具、木马制作、钓鱼链接生成、爆破密码、内存溢出攻击、web渗透、数据提权、...
读书笔记----ARM汇编_编程.zip
《大型网站技术架构 核心原理与案例分析》的作者是李智慧,原阿里巴巴技术专家。 Java 的大多数应用都是用在Web上的,现在只要稍微大型一点的Web应用,都一定是一个分布式系统,那么一个分布式系统用到了哪些技术?...
计算机网络设计第一章读书笔记------.pdf该文档详细且完整,值得借鉴下载使用,欢迎下载使用,有问题可以第一时间联系作者~
笔记记录分享-笔记记录分享网站-笔记记录分享网站源码-笔记记录分享网站java代码-笔记记录分享网站设计与实现-基于springboot的笔记记录分享网站-基于Web的笔记记录分享网站设计与实现-笔记记录分享项目-笔记记录...
ARM嵌入式系统应用技术笔记-基于LPC2300
学生读书笔记共享网站-学生读书笔记共享网站代码-学生读书笔记共享平台-学生读书笔记共享平台代码-学生读书笔记共享项目-学生读书笔记共享项目代码-学生读书笔记共享代码 1、技术栈:java,springboot,vue,ajax,...
云的学习笔记系统-云的学习笔记系统源码-云的学习笔记管理系统-云的学习笔记管理系统java代码-云的学习笔记系统设计与实现-基于ssm的云的学习笔记系统-基于Web的云的学习笔记系统设计与实现-云的学习笔记网站-...