• 网站的技术升级路线


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

     

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

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

    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 

  • 相关阅读:
    clear:both其实是有瑕疵的
    CSS3不遥远,几个特性你要知道
    JavaScript使用数组拼接字符串性能如何?
    CSS网页宽度怎么定比较合适
    浅析JavaScript的垃圾回收机制
    淡入淡出效果的js原生实现
    非阻塞式JavaScript脚本及延伸知识
    HTML5 Canvas圣诞树
    Ubuntu查看和自动挂载硬盘
    正则表达式批量重命名
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3644223.html
Copyright © 2020-2023  润新知