《大型网站技术架构:核心原理与案例分析》笔记02
模式:每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复工作。
网站架构模式:
1.分层:
分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的指责,然后通过上层对下层的依赖和调用组成一个完整的系统。通过分层,可以更好地将一个庞大的软件系统切分成不同的部分,便于分工合作开发和维护;各层之间具有一定的独立性,只要维持调用接口不便,各层可以更具具体问题演化发展而不需要其他层必须做出相应调整。
应用层:负责具体业务和试图展示,如网站首页及搜索输入和结果展示。
服务层:为应用层提供服务支持,如用户管理服务,购物车服务等。
数据层:提供数据存储访问服务,如数据库、缓存、文件、搜索引擎等。
2.分割:
分层是横向方面切分,分割是纵向方面切分。
将不同业务进行分割,例如将购物、论坛、搜索、广告分割成不同的应用,由独立团队负责部署在不同的服务器上。
3.分布式:
分布式意味着可以使用更多的计算机完成同样的功能,计算机越多,CPU、内存、存储资源也就越多,能够处理的并发访问和数据量就越大,进而能够为更多的用户提供服务。
常见分布式方案:分布式应用和服务、分布式静态资源、分布式数据和存储、分布式计算,还有分布式配置、分布式锁、分布式文件系统等等。
4.集群:
多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务。
当有更多用户访问的时候,只需要向集群中加入新的机器即可。同时因为一个应用由多台服务器提供,当某台服务器发生故障时,负载均衡设备或者西戎的失效转移机制会将请求转发到集群中其他服务器上,使服务器故障不影响用户使用。
5.缓存:
缓存就是将数据存放在距离计算最近的位置以加快处理速度。缓存是改善软件性能的第一手段,现代CPU越来越快的一个重要因素就是使用了更多的缓存,在复杂的软件设计中,缓存几乎无处不在。大型网站架构设计在很多方面都使用了缓存设计。
常见缓存设计:CDN、反向代理、本地缓存、分布式缓存。
6.异步:
计算机软件发展的一个重要目标和驱动力是降低软件耦合性。异步是指业务之间的消息传递不是同步调用,而是将一个业务操作分成多个阶段,每个阶段之间通过共数据的方式异步执行进行协作。
特性:提高系统可用性,加快网站响应速度,消除并发访问高峰。
7.冗余:
即数据冗余备份,这样当某台服务器宕机时,可以将其上的服务和数据访问转移到其他机器上。
定期备份---冷备份,数据库主从分离---热备份
大型网站还会在全球范围内部署灾备数据中心。
8.自动化:
在无人值守的情况下网站可以正常运行,一切都可以自动化是网站的理想状态。
9.安全:
密码或手机校验码进行身份验证,网站使用验证码进行识别等。