1.大型网站架构演化

1.1     大型网站软件系统特点

高并发,大流量:

高可用:24小时不间断的服务

海量数据

用户分布广泛,网络情况复杂:

安全环境恶劣

需求快速变更,发布频繁

渐进式发展

 

1.2 大型网站架构演化发展历程

1.2.1初始阶段的网站架构

 

 

1.2.2 应用服务和数据服务分离

 

应用服务器:处理大量业务逻辑,更快更强的CPU

数据服务器:需要快速检索和数据缓存,更快硬盘更大内存

文件服务器:存储大量上传文件,需要大量文件

 

 

 

1.2.3 使用缓存改善网站性能

 

 

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

增加服务器分担原有服务器的的存储压力

 

 

 

通过负载均衡调度服务器,将用户的请求分发到应用服务器集群中的任何一台服务器上

 

1.2.5 数据库读写分离

数据库因为负载过高而成为网站的瓶颈

 

 

 

主数据库从复制机制将数据更新同步到从数据库,

这样当应用服务器读数据时候,就可以通过专门的服务器获得数据

 

 

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

网站需要加速网站访问速度,主要手段是CDN加速器和反向代理

 

 

CDN和反向代理的基本远离都是缓存

CDN是网络提供商的机房,用户请求从最近的网络提供商获取数据

反向代理是从网站的中心机房,如果缓存数据,将直接反悔给用户

 

一方面是减轻后端服务端压力,一方面提高访问速度

 

 

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

 

 

1.2.8 使用NoSQL和搜索引擎

 

1.2.9 业务拆分

应用与用用之间通过超链接或者消息队列建立联系

 

 

1.2.10 分布式服务   

一个应用系统都需要执行许多相同的的业务操作,

把这些相同的业务提取出来,独立部署

由这些可复用的业务连接数据库,提供业务服务

通过调用分布式服务共用业务服务完成具体业务操作

 

 

 

 

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

一点一滴坐骑

 

是业务成就了技术,事业成就了人

 

主要靠业务的发展

 

 

1.4 网站架构设计误区

 

不要消防大公司

 

不用为了技术而技术

 

2. 大型网站架构模式

2.1 网站架构的模式

2. 1.1 分层

 

通过分层可以将系统切割成不同部分,便于分工合作开发

 

2.1.2 分割

将数据,服务,功能进行分割

 

2.1.3 分布式

将模块分布式部署,不同模块部署在不同的服务器上

通过远程协同工作

分布式意味着可以使更多的计算机完成同样的功能

 

分布式应用与服务,分布式静态资源,分布式数据与存储,分布式计算

 

分布式处理就是多台相连的计算机各自承担同一工作任务的不同部分,在人的控制下,同时运行,共同完成同一件工作任务。

2.1.4 集群

多台服务器部署相同应用构成一个集群,通过负载均衡设备对外提供服务

 

因为一个应用由多台服务器提供,当某台服务器发生故障时,

负载均衡设备或系统的失效转移机制会将请求转发到集群中其他服务器上,

使服务器鼓掌影响不了用户

 

2.1.5 缓存

CDN:缓存一些静态资源

反向代理:缓存一些静态文件

本地缓存

分布式缓存

 

2.1.6 异步

业务之间的消息传递不是同步调用,而是将业务操作分布多个阶段,

每个阶段之间通过共享数据的方式异步执行

进行写作

 

 

 

2.1.7 冗余

2.1.8 自动化

2.1.9 安全

 

2.2 架构模式在新浪微博的应用

 

 

好的设计不是模仿,不是生搬硬套,而是在深刻理解上的创造与创新

 

posted on 2016-09-29 11:03  Sharpest  阅读(245)  评论(0)    收藏  举报