《大型网站技术架构-核心原理与案例分析》之一: 大型网站架构演化

最近刚刚读完李智慧的《大型网站技术架构-核心原理与案例分析》,对每章重点内容作了一些笔记,以便加深印象及日后查阅。

一、大型网站软件系统的特点

高并发,大流量:需要面对高并发用户,大流量访问。

高可用:系统7X24小时不间断服务。

海量数据:需要存储、管理海量数据,需要使用大量服务器。

用户分布广泛,网络情况复杂:许多大型互联网都是为全球用户提供服务的,用户分布范围广,各地网络情况千差万别。

安全环境恶劣:由于互联网的开放性,使得互联网站更容易受到攻击,大型网站几乎每天都会被黑客攻击。

需求快速变更,发布频繁:和传统软件的版本发版本发布频率不同,互联网产品为快速适用市场,满足用户需求,其产品发布频率是极高的。

渐近式发展:与传统软件产品或企业应用系统一开始就规划好全部的功能和非功能需求不同,几乎所有的大型互联网站都是从一个小网站开始,渐进地发展起来的。

二、大型网站架构演化发展历史

1、初始阶段的网站架构

应用程序、数据库、文件等所有的资源都在一台服务器上。通常使用的技术为Linux、PHP、Apache、MySQL,架构图如下:

2、应用服务器和数据服务分离

将应用和数据分离,整个网站使用三台服务器:应用服务器、文件服务器和数据库服务器。分离后,不同特性的服务器承担不同的服务角色。

3、使用缓存改善网站性能

网站使用的缓存可以分为两种:缓存在应用服务器上的本地缓存和缓存在专门的分布缓存服务器上的远程缓存。使用缓存后,数据访问压力得到有效缓解,架构图如下:

4、使用应用服务器集群改善网站的并发处理能力

使用集群是网站解决高并发、海量数据问题的常用手段。通过负载均衡服务器,可将来自用户浏览器的访问请求分发到应用服务器集群中的任何一台服务器上。

5、数据库读写分离

网站使用缓存后,使绝大部分数据读操作访问都可以不通过数据库就能完成,但是还有一部分读操作(缓存访问不命中、缓存过期)和全部的写操作需要访问数据库。通过配置两台数据库主从关系,可以将一台数据库服务器的数据更新同步到另一台服务器上。为了便于应用程序访问读写分离后的数据库,通常在应用服务器端使用专门的数据访问模块,使数据库读写分离对应用透明。

6、使用反向代理和CDN加速网站响应

CDN和反向代理基本原理都是缓存,区别在于CDN部署在网络提供商的机房,使用户在请求网站服务时,可以从距离自己最近的网络提供商机房获取数据;而反向代理则部署在网站的中心机房,当用户请求到达中心机房后,首先访问的服务器是反向代理服务器,如果反向代理服务器上缓存着用户请求的资源,就将其直接返回给用户。

7、使用分布式文件系统和分布式数据库系统

分布式数据库是网站数据库拆分的最后手段,网站更常用的数据库拆分手段是业务分库,将不同业务的数据库部署在不同的物理服务器上。

8、使用NOSQL和搜索引擎

NOSQL和搜索引擎都是源自互联网的技术手段,对可伸缩的分布式特性具有更好的支持。

9、业务拆分

大型网站为了应对日益复杂的业务场景,通过使用分而治之的手段将整个网站业务分成不同的产品线,将一个网站拆分成许多不同的应用,每个应用独立部署维护。

10、分布式服务

三、大型网站架构演化的价值观

世界没有哪个网站从诞生起就是大型网站;也没有哪个网站第一次发布就拥有庞大的用户,高并发的访问,海量的数据;大型网站都是从小型网站发展而来。网站的价值在于它能为用户提供什么价值,在于网站能做什么,而不在于它是怎么做的,所以在网站还很小的时候就去追求网站的架构是舍本逐末,得不偿失的。小型网站最需要做的就是为用户提供好的服务来创造价值,得到用户的认可,活下去,野蛮生长。

1、大型网站架构技术的核心价值是随网站所需灵活应对

大型网站架构技术的核心价值不是从无到有搭建一个大型网站,而是能够伴随小型网站业务的逐步发展,慢慢地演化成一个大型网站。

2、驱动大型网站技术发展的主要力量是网站的业务发展

创新的业务发展模式对网站架构逐步提出更高要求,才使得创新的网站架构得以发展成熟。

四、网站架构设计误区

1、一味追随大公司的解决方案

2、为了技术而技术

网站技术是为业务而存在的,除此毫无意义。

3、企图用技术解决所有问题

技术是用来解决业务问题的,而业务的问题,也只可以通过业务的手段去解决。

时间: 2024-12-17 07:55:53

《大型网站技术架构-核心原理与案例分析》之一: 大型网站架构演化的相关文章

大型网站技术架构--核心原理和案例分析 大型网站架构演化(一)

如果把上世纪90年代CERN正式发布web标准和第一个WEB服务的出现当作互联网的开始,那么互联网站的发展之经历了短短20多年的时间.在20多年的时间里,互联网的世界发生了变化,今天,全球有近一半的人口使用互联网,人们的生活因为互联网而产生了巨大的变化.从信息检索到即使通信,从电子购物到文化娱乐,互联网渗透到生活的每一个 角落,而且这种趋势还在蔓延.因为互联网,我们的世界正变得越来越小. 同时我们也看到,在互联网跨越式发展进程中,在电子商务火热的市场背后却是不堪重负的网站架构.某些B2C网站逢促

JAVA读书推荐----《深入分析Java Web技术内幕》--《java多线程编程核心技术》--《大型网站技术架构 核心原理与案例分析》-《Effective Java中文版》

(1)  首先推荐的不是一本书,而是一个博客,也是我们博客园另外一位博友java_my_life. 目前市面上讲解设计模式的书很多,虽然我前面讲了看书是最好的,但是对设计模式感兴趣的朋友们,我推荐的是这个博客.这位博友的设计模式讲得非常非常好,我认为90%的内容都是没有问题且很值得学习的,其讲解设计模式的大体路线是: 1.随便开篇点明该设计模式的定义 2.图文并茂讲解该设计模式中的结构 3.以详细的代码形式写一下该种设计模式的实现 4.补充内容 5.讲解该设计模式的优缺点 对于一个设计模式我们关

《大型网站技术架构核心原理与案例分析》阅读笔记-01

通过阅读该书籍我们能够更加清楚的树立大型网站的的技术发展历程,剖析大型网站技术架构模式,深入的讲述大型互联网架构核心原理,并通过一些典型的技术案例来讲述大型网站开发全景视图,该书籍深入的阐述了各种大型网站面临的各种架构问题及解决方案. 在第一章第一篇大型网站架构演化中了解到与传统企业应用系统相比,大型互联网应用系统具有高并发大流量.高可用性.海量数据.用户分布广泛,网络情况复杂.安全环境恶劣.需求快速变更,发布频繁.渐进式发展等特点:大型网站架构演化发展历程经历了初始阶段的网络架构它的应用程序.

大型网站技术架构-核心原理与案例分析-阅读笔记4

在第四章案例章节中的淘宝网的架构演化案例分析小节中作者主要分析了淘宝架构的演化,以淘宝网的实例给我们分析介绍了淘宝网的业务发展历程及淘宝网的技术架构演化两个方面,在业务发展中作者写到淘宝的技术是随着淘宝业务一起发展起来的,业务是推动这技术发展的动力,淘宝如今的规模和当初有很明显的变化,在技术架构演化中介绍了架构技术的更新升级,该章节中主要介绍淘宝网的发展的历程,在随着时间的发展不断中网站的架构不断的引用着新的技术,由最初简单的c2c更改过来的网站,放弃了lamp架构转而使用java作为开发平台并

大型网站技术架构-核心原理与案例分析-阅读笔记5

在第四章案例章节中的海量分布式存储系统Doris的高可用架构设计分析的小节中作者主要分析介绍了分布式存储的高可用架构和不同故障情况下的高可用解决两个方面,在两小节前作者给我们介绍了Doris是一个海量分布式KV存储系统,其设计的目的是支持中等规模高可用.可伸缩的Kv存储群.跟主流的NoSQL系统HBase相比,doris具有相似的性能和线性伸缩能力,并具有更好的可用性及更友好的图形用户管理界面.而在分布式存储的高可用架构的小节中作者给我们分析了Doris的整体架构,其系统整体上可分为应用程序服务

大型网站技术架构-核心原理与案例分析-阅读笔记02

在第二章的架构章节中的 瞬时响应:网站的高性能架构的篇章中讲到网站的性能是客观的标准,可以具体的体现在响应时间.吞吐量等技术指标上,同时也是主观的感受.在高性能架构中讲到对于网站性能的测试,性能测试是性能优化的前提和基础,也是性能优化结果的检查和度量标准.在不同的角色响应下网站的性能有不同的标准,也有不同的优化手段.在此基础上作者更深一步的讲解到网站的性能测试,其中又包括了不同视角下的网站性能.性能测试指标.性能测试方法.性能测试报告.性能优化策略五个反面,同时也详细的讲解了这五个方面所具有的内

大型网站技术架构-核心原理与案例分析-阅读笔记3

在第二章的架构章节中的 随机应变:网站的可拓展架构的篇章中作者介绍了构建网站的可扩展架构.利用分布式队列降低系统的耦合性.利用分布式可复用的业务平台.可拓展的数据结构.利用开放平台建设网站生态圈五个方面,作者在讲述前通过微信的成功发布及其中摇一摇功能的加入的开发的快捷引出来的,其中构建网站的可扩展架构中区分了扩展性和伸缩性的区别,讲到了低耦合性的系统跟容易扩展,并且更容易复用,一个低耦合性的系统也可以让系统更加容易的开发和维护,在如何降低系统的耦合性中,作者主要介绍用分布式消息队列的方法来降低系

【大型网站技术架构 核心原理与案例分析】读书笔记

章节 笔记 1.概述 网站架构模式:分层.分割.分布式.集群.缓存.异步.冗余.自动化.安全. 核心架构要素:性能.可用性.伸缩性.扩展性.安全. 4.高性能 一般重复请求一万次计算总响应时间然后除以一万得到单词响应时间. 测试程序并不是启动多线程然后不停发送请求,而是在两次请求之间加入一个随机等待时间. 吞吐量:每天通过收费站的车辆数目:并发数:正在行驶的车辆数目:响应时间:车速.TPS:每秒事务数:HPS:每秒请求数:QPS:每秒查询数. 性能计数器:System Load(系统负载,最理想

大型网站技术架构-核心原理与案例分析

阿里系的书,也是讲大型网站系统架构的,平常我们总是挂在嘴边的高性能.高可用.易扩展.安全性,这些所谓的系统非功能性指标到底如何实现,书里面讲了这些干货,作为网站架构师或者哪怕是应用系统的架构师,都值得了解,也许不一定都能用上,但是等需要用的那天,你肯定不会迷茫. 1.大型网站架构发展常见历程:应用/数据库分离--->使用缓存--->应用服务器集群--->数据库读写分离--->CDN及反向代理--->使用分布式文件系统和分布式数据库--->NoSQL及搜索引擎--->