互联网系统架构总结
1. 互联网系统特点
高并发,大流量
高可用
海量数据
用户分布广泛,网络情况复杂
安全环境恶劣
需求快速变更,发布频繁
渐进式发展
2. 互联网架构演化
第零阶段:最简单的互联网应用架构,所有资源都在同一台服务器上
第一阶段:应用数据分离
第二阶段:使用缓存改善网站性能,本地缓存和分布式缓存
第三阶段:使用应用服务器集群改善网站的并发处理能力,负载均衡
第四阶段:数据库读写分离
第五阶段:使用反向代理和 CDN 加速网站响应
第六阶段:使用分布式文件系统和分布式数据库系统
第七阶段:使用 NoSQL 和搜索引擎
第八阶段:业务拆分
第九阶段:微服务和中台化
第十阶段:大数据和智能化
3. 架构模式
分层
横向维度切割,通过上下层依赖组合
分割
纵向维度切割,高内聚低耦合
分布式
通过分层和分割后分布式部署,解决高并发和大流量。
主要包含,分布式应用和服务,分布式静态资源,分布式数据和存储,分布式计算
集群
多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务
缓存
缓存数据就近获取,解决性能问题。
主要包括,CDN,反向代理,本地缓存,远程缓存(分布式缓存)
异步
一个业务操作分成多个阶段,每个阶段之间通过共享数据的方式异步进行协作,降低系统耦合性。
主要优点,提高系统可用性,加快网站响应速度,消除并发访问高峰
冗余
保证系统可靠性,对服务器进行冗余运行,数据冗余备份,确保一部分服务器宕机后网站继续运行
自动化
主要是运维自动化,大概包括:代码管理自动化、测试自动化、发布部署自动化、监控报警自动化、熔断恢复自动化、资源服务器伸缩自动化
安全
需要确保系统的安全性。
手段,双因素验证,网络加密,数据加密,多重的验证码,编码转换,数据过滤,风控。
4. 互联网系统架构核心要素
高性能
为用户提供快速的访问
高可用
确保系统 7*24 小时可用
可伸缩
即不改变现有系统的基础上,添加或删除服务器等资源,以提高或降低系统能力
可扩展
可以方便快速的添加和删除功能,达到更好的扩展性
安全性
对已知的的攻击进行拦截,对未知的问题提供防御
5. 互联网架构技术一览
前端架构
App 及 Web 开发技术
优化系统组件加载等部分
浏览器及 HTTP 优化技术
减少 http 请求书,浏览器缓存,js css 压缩等
CDN
静态资源 cdn 加速
动静分离
动态静态资源分离,尽可能加快响应
图片服务
图片资源使用特殊加速渠道
反向代理
反向代理加速资源获取熟读
DNS
DNS 优化加速
网关及应用架构
网关架构
优化网关,提高性能
负载均衡
多份同样应用,减少同台服务器负载
页面静态化
页面静态化,通过反向代理,cdn 等手段加速
业务拆分
业务拆分,分摊服务器等资源负载
服务层架构
微服务架构
对系统服务进行业务等不同维度拆分,进行解耦,达到高可扩展
分布式消息队列
将系统运行进行异步化,解耦系统
分布式缓存
提高数据等资源获取速度
分布式一致性
确保系统数据最终一致性
存储层架构
分布式文件
分布式关系数据库
Nosql 数据库
后台架构
大数据平台
搜索引擎
推荐引擎
数据仓库
运维与安全
数据采集和展示
数据监控和报警
攻击和防护
数据加密和解密
评论