`
pcajax
  • 浏览: 2200883 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

大型 网站成长过程的分析笔记===通过广告来来学习,重要的是思路

 
阅读更多

《大型网站技术架构》读书笔记 - 网站的技术升级路线 

本文描述网站从小到大演变过程中的技术升级路线;

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.业务拆分

按照业务来划分子系统,按产品线划分系统,通过分布式服务来协同工作;

附:思维导图

卓越亚马逊地址: 《大型网站技术架构 
点击查看原图

网站的技术升级路线


分享到:
评论

相关推荐

    sas各过程笔记 描述性统计 线性回归 logistic回归 生存分析 判别分析 聚类分析 主成分分析 因子分析 典型相关分析

    本文是 SAS 学习过程中记下的笔记,涵盖了初级的统计分析过程,包括描述性统计、线性回归、logistic 回归、生存分析、判别分析、聚类分析、主成分分析和典型相关分析等。 描述性统计 描述性统计是对数据的基本描述...

    大数据学习成长笔记知识全集

    此外,“大数据学习成长笔记知识全集”还提供了丰富的案例分析和实际项目经验分享,让你能够通过实际操作和实践来加深对大数据技术的理解和运用。不仅如此,这份资源还包含了大量的学习笔记和总结,帮助你系统地整理...

    黑马python机器学习入门笔记

    《黑马Python机器学习入门笔记》是一份针对初学者编写的指南,旨在帮助读者掌握Python语言在机器学习领域的基本...通过学习和实践,你将在探索数据的模式、趋势和关联的过程中,逐渐成长为一名熟练的机器学习工程师。

    Java笔记==============

    Java笔记主要涵盖的是Java编程语言的核心概念和技术,这些笔记可能是作者在学习或实践中积累的经验总结。Java作为一种广泛应用的面向对象的编程语言,其强大的功能和跨平台性使其在软件开发领域占据重要地位。以下将...

    关于的系统分析师考试的笔记

    此外,系统分析员笔记.doc中还会提到许多其他与系统分析和设计相关的重要概念和知识点。考生应当重视这些内容的学习,因为它们构成了系统分析员必须掌握的工具和方法。例如,软件工程中关于需求分析、系统设计、实现...

    分析化学手写笔记.zip

    这份“分析化学手写笔记.zip”压缩包包含了对这一领域的详细记录和理解,通过手写笔记的形式,可能更加直观地展示了学习者对分析化学概念的掌握和思考过程。 笔记可能涵盖以下几个关键知识点: 1. **化学分析方法*...

    Python数据分析实战 内利著 学习笔记

    Python数据分析实战 内利著 学习笔记 Python数据分析实战 内利著 学习笔记 Python数据分析实战 内利著 学习笔记 Python数据分析实战 内利著 学习笔记 Python数据分析实战 内利著 学习笔记 Python数据分析实战 内利著...

    学习笔记学习笔记笔记

    【描述】"学习笔记学习笔记学习笔记学习笔记学习笔记学习笔记学习笔记学习笔记"进一步强调了这是关于学习的记录,可能涵盖了多次复习或不同时间的学习心得。这样的描述暗示了笔记内容的丰富性和深度,可能包括了理解...

    第一行代码 android学习笔记 完整版

    "Android学习笔记" Android学习笔记是Android开发者的必读书籍,书中涵盖了Android系统架构、Activity、Intent、资源管理等多方面的知识。本笔记对应的学习资源《第一行代码》是Android开发者的入门必读书籍,书中...

    学习笔记 学习笔记 学习笔记 学习笔记 学习笔记 学习笔记 学习笔记 学习笔记

    这份学习笔记详细记录了DWS从理论到实践的全过程,对于理解和掌握数据仓库系统有着重要的指导价值,无论是初学者还是经验丰富的专业人士,都能从中受益。通过深入学习和实践,可以更好地利用DWS助力企业的数据驱动...

    深度学习高数学习笔记

    这份"深度学习高数学习笔记"包含了山时光团队在网易云课堂上讲解的《深度学习数学基础》系列课程的精华内容,是深入理解深度学习必备的数学基础知识。 高等数学是所有理工科专业学生的基础课程,对于深度学习来说,...

    《阿秀的学习笔记》第四版By阿秀-420

    《阿秀的学习笔记》第四版是一本由阿秀编写的计算机专业学习与求职指南,作为2021届计算机研究生的作者,在一个普通的双非学校完成了他的学业。在求职季,阿秀通过自己的努力,成功获得了包括华为、百度和字节跳动...

    机器学习和定量分析学习正在进行中-深度学习笔记.zip

    在学习深度学习的过程中,笔记的整理显得尤为重要。笔记可以包括深度学习的基本概念、算法原理、模型结构、训练技巧以及应用案例等多个方面。其中,基本概念涉及到神经网络中的前向传播、反向传播、激活函数等;算法...

    林信良java学习笔记

    通过阅读这份笔记,并且结合源码分析、视频教学和代码示例的辅助,学习者可以系统地提升自己的Java编程能力,从而从一个初学者逐步成长为一个熟练的开发者。同时,这份笔记也在不断提醒我们,持续学习和实践是技术...

    哈工大复试资料-随机信号分析总结笔记

    《哈工大复试资料-随机信号分析总结笔记》是一份由郑薇老师编写的珍贵学习资料,专为准备哈工大考研复试的学生提供。这份笔记详尽地涵盖了随机信号分析的核心概念、理论与应用,是备考过程中不可或缺的参考资料。...

    《机器学习导论》干货笔记

    总结来说,这份笔记全面地覆盖了机器学习的基础理论和一些重要算法,包括判别分析、逻辑回归、提升算法和支持向量机。通过深入理解这些概念和技术,读者可以更好地掌握机器学习的核心,并为解决实际问题打下坚实基础...

    系统架构师学习笔记

    从提供的内容来看,系统架构师的学习笔记包括了多个关键章节,每个章节都对应着不同方面的知识,覆盖了从基础的计算机知识到软件开发流程、软件架构设计以及具体技术的学习和应用。特别地,还涵盖了系统架构师在团队...

    ClamAV源码分析笔记

    ClamAV源码分析笔记详细解读 ClamAV是一款被广泛应用于邮件服务器附件扫描的反病毒工具,它基于通用公开许可证(GPL)进行开源,提供了强大的病毒检测能力。本笔记将详细介绍ClamAV的源码分析,包括其安装、编译...

    机器学习笔记完整版.pdf

    机器学习是人工智能领域的一个重要分支,它涉及到让计算机通过学习来模拟人类的学习行为,以获得新的知识或技能,并不断改进其性能。机器学习的核心在于归纳和综合,不同于传统的演绎方法。其应用广泛,从自动驾驶...

    java学习心得一些笔记

    Java学习心得笔记主要涵盖了几大知识点,包括运算符、Integer类、引用类型、数组、多维数组、字符串类。下面将详细阐述这些内容。 1. **运算符**: 在Java中,运算符包括移位运算符。`是左移运算符,将二进制数向...

Global site tag (gtag.js) - Google Analytics