理论系列-大型网站架构演进

理论系列-大型网站架构(笔记)

1. 前言

1.1 大型网站特点
  • 高并发,大流量:高并发用户,大流量访问
  • 高可用:系统24小时不间断服务
  • 海量数据:需要存储、管理海量数据
  • 用户分布广泛,网络情况复杂
  • 安全环境恶劣
  • 需求快速变更,发布频繁
  • 渐进式发展
1.2 网站架构模式
  1. 分层:

    应用层

    服务层

    数据层

  2. 分割:服务拆分

  3. 分布式:业务拆分

  4. 集群

  5. 缓存

  6. 异步

  7. 冗余

  8. 自动化

1.3 核心要素
1.3.1 性能

指标:响应时间、TPS、系统性能计数器等

--
浏览器浏览器缓存、页面压缩…
DNSCDN
代理反向代理
应用缓存、消息队列、集群
代码多线程等
数据库索引、缓存、SQL优化
1.3.2 可用性

冗余

--
应用服务器负载均衡+集群
存储服务器备份
1.3.3 伸缩性

向集群加入服务器缓解不断上升的用户方法访问压力和不断增长的数据存储需求

1.3.4 扩展性

功能需求

事件驱动架构和分布式服务

2. 演进

2.1 初始阶段:一台服务器

一台服务器(部署应用程序、数据库、文件系统…)

2.2 应用和数据库分离

问题:用户增长,单机性能不够…

解决:应用和数据库分离

结果:应用服务器、文件服务器、数据库服务器

2.3 增加缓存

问题:热点数据查询慢

解决:增加缓存

结果:应用服务器、缓存服务器、数据库服务器、文件服务器

2.4 应用程序集群

问题:数据库可支撑查询,用户再增长,应用撑不住

解决:负载均衡+集群

结果:负载均衡、应用集群、缓存、数据库、文件

2.5 数据库读写分离

问题:数据库写称为瓶颈

解决:数据库读写分离

结果:负载均衡、应用集群、缓存、主-从数据库、文件

2.6 反向代理和CDN加速

问题:不同地区用户访问,速度差别大

2.7 分布式文件系统、分布式数据库、NoSQL、搜索引擎

问题:业务需求

2.8 服务拆分

3. 高可用架构

3.1 高可用网站架构

数据和服务的冗余备份和失效转移

3.2 高可用应用

无状态

负载均衡

集群

有状态的session

  1. Session复制
  2. Session绑定
  3. Cookie记录Session
  4. Session服务器
3.3 高可用服务

分级管理(核心服务更高可用)

超时设置

异步调用

服务降级

幂等性

3.4 高可用数据

数据备份和失效转移

4. 伸缩性架构

物理隔离:不同服务器部署不同服务

集群:多台服务器提供相同功能

负载均衡算法

一致性哈希

5. 可扩展架构

低耦合

消息队列

分布式服务

6. 架构技术

网站架构层:

--
前端架构
应用层架构
服务层架构
存储层架构
后台架构
数据中心机房架构,安全架构,数据采集与监控

前端架构:浏览器优化,CDN,动静分离,图片服务,反向代理,DNS

应用层架构:开发框架,页面渲染,负载均衡,Session管理,动态页面静态化,业务拆分,虚拟化服务器

服务层架构:分布式消息,分布式服务,分布式缓存,分布式配置

存储层架构:分布式文件,关系数据库,NoSQL数据库,数据集同步

后台架构:搜索引擎,数据仓库,推荐系统

数据采集与监控:浏览器数据采集,服务器业务数据采集,服务器性能数据采集,系统监控,系统报警

安全架构:Web攻击,数据保护

数据中心机房架构:机房,机柜,服务器

参考

《大型网站技术架构》

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值