`
colin115
  • 浏览: 41526 次
社区版块
存档分类
最新评论

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

阅读更多

《大型网站技术架构》读书笔记 - 网站的技术升级路线
image
本文描述网站从小到大演变过程中的技术升级路线;

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
微博:新浪微博

0
0
分享到:
评论

相关推荐

    CCNA中文读书笔记

    【CCNA中文读书笔记】是一份详尽的网络技术学习资料,主要针对Cisco Certified Network Associate(CCNA)认证考试进行整理。这份笔记包含了CCNA学习的各个重要章节,旨在帮助学习者深入理解网络基础概念,熟悉Cisco...

    SQL SEVER 2005 读书笔记

    ### SQL Server 2005 读书笔记 #### 一、SQL Server 2005 概览 **SQL Server 2005** 是微软公司发布的一款企业级数据库管理系统,它是在 SQL Server 2000 基础上的重大升级版本。此版本在性能、安全性、可管理性等...

    马老师的java笔记

    《马老师的Java笔记》是一份综合性的学习资料,涵盖了Java开发中的多个重要框架和技术,包括J2SE(Java Standard Edition)、JW22(可能是Java Web的错误拼写)、Spring、Hibernate、Struts以及Oracle数据库。...

    struts学习笔记(四)

    它可能还涵盖了Struts与其他技术如Hibernate(用于持久化)或Spring(用于依赖注入)的集成,以及Struts2的升级和新特性介绍。 总的来说,学习Struts框架对于Java Web开发者来说是非常有价值的,它能帮助你理解Web...

    移动平台技术

    2. **小型机时代**(上个世纪70年代):随着计算机技术的发展,出现了更为小型化的计算机系统,这些小型机相比于大型机更加经济、便于管理,使得更多企业能够负担得起,进一步推动了信息技术的应用。 3. **个人电脑...

    老白DBA日记

    2. **数据库设计与架构**:探讨大型数据库的架构设计,如何处理大规模数据和并发访问的问题。 3. **并行执行与资源管理**:并行查询的原理与配置,以及如何通过PGA和SGA优化内存使用。 4. **数据库升级与迁移**:...

    17_你们公司生产环境的分布式搜索引擎是怎么部署的呢?.zip

    分布式搜索引擎的部署是一个复杂而关键的过程,特别是在大型的IT企业中,它对于处理海量数据和提供高效的搜索服务至关重要。...通过阅读笔记.docx和PPT.pptx文件,可以更深入地了解具体的部署细节和技术要点。

Global site tag (gtag.js) - Google Analytics