赞
踩
网站特点
初始网站架构
-1.0 时代 —— LAMP结构 (服务器操作系统Linux,应用程序php开发,部署Apache上,数据库MYSQL)
-2.0 时代 —— 应用服务与数据服务分离(应用服务器、文件服务器、数据库服务器)
- 应用服务器 : 处理业务逻辑 (需要更快更强的CPU)
- 数据库服务器 :需要更快速磁盘索引和缓存 (需要更快的硬盘、更大的存储)
- 文件服务器 :存储大量用户上传文件 (更大硬盘)
-3.0 时代 —— 使用缓存改善网站性能
- 应用服务器的本地缓存
- 专门的分布式服务器远程缓存
-4.0 时代 —— 使用应用程序集群,处理并发
- 负载均衡服务器 :将用户请求放到应用服务器集群中的任意一台服务器
- 基本框架 :负载均衡服务器 —— 应用服务器集群(应用程序+本地缓存)——分布式缓存服务器(远程分布式缓存)、文件服务器、数据库服务器
-5.0 时代 —— 数据库的读写分离(缓存数据库访问)
- 访问数据库操作 : 缓存访问不命中,存储过期,写操作
- 数据库读写分离 : 在应用服务器中增加数据库访问模块,写入数据调用主数据库,访问主数据库和读操作调用从数据库(从数据库服务服务主数据库数据)
-6.0 时代 —— 使用反向代理和CDN(加速网站响应,减轻后端服务器负载)
- CDN、反向代理服务器基本原理 :缓存
- CDN(集群) :部署在网络供应商的机房,使用户请求网站服务时,可以从距离自己更近的网络供应商机房进行获取数据
- 方向代理服务器 :部署在网站的中心机房,用户请求达到机房后,先访问服务反向代理服务器,如果反向代理服务器(集群)缓存用户请求资源,就返回给用户
- 基本框架 :CDN —— 反向代理服务器 —— 负载均衡(接 4.0时代 + 数据库读写分离)
-7.0 时代 —— 分布式文件系统,分布式数据库系统
- 分布式文件系统 :文件系统使用分布式集群
- 分布式数据库 :数据拆分最后手段 (业务分库,不同业务数据库补助在不同物理服务器上)
-
-8.0 时代 —— 提升数据库的存储和检索的需求
- 使用NOSQL 和搜索引擎
- 应用服务器通过统一的数据访问模块访问各种数据,减轻应用程序管理诸多数据库源的麻烦
-9.0 时代 —— 分布式服务
- 共用业务提取处理,独立部署(例如: 用户管理、商品管理)
- 服务间的消息共享
- 1、通过超连接建立关系(导航链接每个执行不同的地址)
- 2、消息队列进行数据分发(加入消息队列服务器)
- 3、访问同一个数据存储系统,构成一个关联的完整系统(使用最多)
网站架构模式
组成 :计算机硬件、操作系统、应用软件
1、分层(纵向)
- 应用层(视图层、业务逻辑层) : 负责具体业务和视图展示,如网站首页及搜索输入和结果展示
- 服务层 (数据接口层、逻辑处理层):应用层数据支持,如用户管理服务、购车服务等
- 数据层 :提供数据存储访问服务,如数据库、缓存、文件、搜索引擎等
2、分割(横向)—— 主要还是应用层
- 将购物、论坛、搜索、广告分割成不同的应用
3、常用的分布式方式
- 分布式应用和服务 : 将分层和分割后的应用 和服务模块分布式部署
- 分布式静态资源 : 将网站静态资源、如JS、CSS、LOGO 图片等分布式部署,并采用独立的域名,即动静分离
- 分布式数据存储 :数据库分布式存储,及部署
- 分布式计算 :目前普遍使用Hadoop 及Mapreduce 分布式计算框架
- 分布式配置 :支持服务器配置实时更新
- 分布式锁 :实现分布式并发和协同
- 分布式文件 :支持云存储系统
4、对访问量较大的模块(如:网页的首页)
- 需要进行独立化的部署,部署称为集群,同构负载均衡设备同时对外提供服务
5、缓存手段
- CDN : 内容分发网络(网络服务商端)
- 反向代理 :属于 网站前端架构的一部分,部署在网站的前端,最先访问,缓存着 静态资源文件,无需请求继续
- 本地缓存 :在应用服务器本地缓存热点数据
- 分布式缓存 :专门的 数据缓存集群,通过网络通信访问缓存数据
6、异步
- 将一个业务分割成多个阶段,每个阶段通过数据共享的方式进行异步执行
- 单一服务 :通过多线程共享内存队列的方式实现异步
7、冗余
- 定义冷备份
- 定时热备份
- 灾备数据中心
8、网站自动化
-网络代码发布环节自动化
- 发布过程自动化
- 自动化代码管理
- 自动化测试
- 自动化安全检测
- 自动化部署
- 网站运行中的要求
- 自动化监控
-自动化报警
-自动化失效转移
-自动化失效恢复
-自动化降级
-自动化分配资源
9、安全方式
- 1、通过密码、手机验证码验证身份
- 2、对登陆、交易等操作需要通过网络通信进行加密
- 3、服务器上存储的用户信息晔需要进行加密
- 4、防止机器人程序 、用验证码进行识别
新浪微博的服务架构
- 基础服务层——提供数据库、缓存、存储、搜索数据服务、基础技术服务——支持海量数据和高并发访问。
- 中间层——平台服务层+应用服务层——独立的服务模块、通过以来调用和共享基础服务构成业务基础。 API+业务层——客户端+三方应用
- API+业务层——客户端+三方应用 通过调取API集成新浪微博系统,构成生态。
网站架构设计
1、性能优化
- 浏览器端——浏览器缓存、页面压缩、合理布局、减少Cookie传输
- 使用CDN将静态内容发布至离用户最近的网络服务机房
- 使用方向代理服务器,缓存热点文件。加快相应速度,减少服务器压力
- 应用服务器端
1、服务器本地缓存,分布式存储,缓存内存中的热点数据处理用户请求,加快请求处理过程,减少数据库负载压力
2、异步操作将用户请求发送至消息队列等待任务处理,当前请求直接返回相应给用户
3、多台服务器组成集群,共同对外服务。
- 代码层 (使用多线程、改善内存管理)、
- 数据库 (索引、缓存、SQL优化)
分布式缓存
缓存关键指标- 命中率
缓存TTL常用方法
缓存类型
代理缓存 : 缓存在客户端
反向代理缓存 :代理数据中心输出的
CDN 缓存(内容分发网络 CDN 缓存):网络服务商的缓存服务
对象缓存
分布式缓存技术点
分布式对象缓存架构
分布式对象缓存的访问模型
分布式缓存算法(一致性哈希算法)
缓存举例
缓存数据存储(Hash 表)
介质访问延迟
分布式对象缓存
分布式消息队列
常用消息队列产品
异步机构的主要组成
异步架构主要模型
异步架构的好处
异步机构问题
同步机制
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。