大型网站技术架构 -- 概述
1.系统面临问题
1)高并发,大流量
2)高可用
3)海量数据
4)用户分布广,网络情况复杂
5)安全环境
6)需求快速变更,发布频繁
7)渐进式发展
2.架构演化:系统面临的问题推进了技术的发展
1)应用数据分离
将应用和数据分离,部署专门的文件服务器和数据库服务器
2)使用缓存改善系统性能
网站访问特点和世界财富分配一样遵循二八定律,80%的业务访问集中在20%的数据上
本地缓存、远程分布式缓存
3)使用应用服务器集群改善系统并发处理能力
任何强大单一服务器都满足不了大型网站持续增长的业务,分布式集群是解决高并发,海量数据问题的常用手段。
4)数据库读写分离
主从复制
5)利用反向代理和CDN加速网站响应
基本原理都是缓存,区别CDN部署在网络提供商机房,用户就近获取数据,反向代理部署在网站
6)使用分布式文件系统和分布式数据库系统
7)使用NoSql和搜索引擎
8)业务拆分
9)微服务及中台
3.架构模式
1)分层:横向维度切分
网关层、应用层、基础设施层
2)分割:纵向维度分割
功能和服务分割,包装成高内聚低耦合的模块单元,便于分布式部署
3)分布式
分层分割目的就是为了分布式部署,使用多台服务器部署一个项目的不同功能,可处理高并发和大量数据
4)集群
分层分割后,访问量大的服务可以部署服务集群化,多台服务部署相同应用,通过负载均衡设备对外提供服务
5)缓存
将数据存放在距离计算最近的位置来加快处理速度,改善性能第一手段
CDN,反向代理,本地缓存,分布式缓存
6)异步
解耦合手段,将一个业务操作分多个阶段,异步架构是典型的生产者和消费者模式,两者不存在直接调用
提高系统可用性,加快网站响应速度,消除并发访问高峰
7)冗余
保证应用7*24小时连续运行,服务器冗余,数据备份冗余
8)自动化
属于运维,发布部署、代码管理、测试、安全检测、监控、报警、失效转移、失效恢复、降级等的自动化
9)安全
加解密,手机校验,XSS,防盗链,SQL注入,CSRF
4.架构核心要素
高可用:7*24
高性能:响应速度
易扩展:功能性需求,扩展功能
可伸缩:通过集群增加服务器数量
安全:防止系统被攻击,数据被窃取
5.架构技术
1)前端架构
App及Web开发技术
浏览器及HTTP优化技术
CDN
动静分离
图片服务
反向代理
DNS
2)网关及应用架构
网关架构
负载均衡
动态页面静态化
业务拆分
3)服务层架构
微服务框架
分布式消息队列
分布式缓存
分布式一致性(锁)服务
4)存储层架构
分布式文件
分布式关系数据库
NoSql数据库
5)后台架构
大数据平台
搜索引擎
推荐引擎
数据仓库
6)运维与安全
数据采集与展示
数据监控与报警
攻击与防护
数据加密与解密
评论