大型网站技术架构笔记 简单把重要点转化为了思维导图
程序员文章站
2022-03-06 11:53:26
...
目标
记录读书笔记的重要点的一个思维脑图,方便自己快速回忆,防止知识看了却没有好好地利用
读书目标
根据目录整理关键词方便回顾
方便扩展思维
方便扩展自己补充缺少的知识
1.大型网站架构演化
1.1大型网站软件系统的特点
1.高并发,大流量
2.海量数据
3.需求快速变更,发布频繁
4.高可用
5.不间断的服务
6.用户分布广泛,网络情况复杂
7.安全环境恶劣
8.渐进式发展(最终根据业务需要什么功能不清楚)
1.2发展历程
详情见 网站架构的演化
其他
文件服务器
需要大硬盘
应用服务器
需要更快更强大的cpu
数据库服务器
需要更快的应硬盘和内存
受网路影响
1.3价值观
什么阶段做什么样的事情
解决目前遇到的问题还展望未来近一年的业务涉及
1.4 设计误区
1.不要为了技术而技术
2.不能盲目的模仿
3.有些瓶颈不一定要用技术解决可以改变业务
子主题 4
设计最终是简化解决需求问题
2.大型网站架构模式
2.1分层
职责分层
上层依赖下层
规范
2.2分割
业务分割
2.3分布式
分布式应用和服务
分布式静态资源
分布式数据与存储
分布式计算
分布式配置
等等
2.4集群
2.5缓存
1.cdn
2.反向代理
3.本地缓存(前提条件)
1.某些数据被频繁访问
2.设置时间内有效
4.分布式缓存
2.6 异步
提高系统可用性
加快网站响应速度
消除并发访问高峰
2.7冗余
数据备份
冷备份
定时备份
热备份
主从分离
2.8自动化
发布过程自动化
自动化代码管理
自动化测试
自动化安全监测
自动化部署
自动化监控
自动化报警
自动化失效转移
自动化失效恢复
自动化降级
拒绝部分请求,和关闭不重要服务
自动化分配资源
2.9 安全
身份验证
密码
手机校验码
登录,交易
数据信息加密
风险控制
蜘蛛
机器攻击
验证码
xss
sql注入
编码转换
垃圾信息过滤
3.大型网站架构核心要素
什么是架构
最高层次的规划,难以改变的决定
核心
架构决定了事物未来的发展方向和最终蓝图
3.1.性能
3.1 1.目的
改善用户体验响应时间
最大限度利用服务器资源
3.1.2.优化手段简介
缓存
加快数据的读取
集群
提高吞吐能力
异步消息
加快响应速度和削峰
代码优化
改善程序性能
3.1.3.优化手段
3.1.3.1浏览器端
缓存
减少http请求
页面压缩
合理布局
减少cookie传输
用户体验
cdn
反向代理
减少应用服务器的压力
缓存静态文件
3.1.3.2.应用服务器端
本地缓存
分布式缓存
异步操作
消息队列
服务器集群
减少数据库的压力
什么时候使用
高频率访问数据
有效时间
3.1.3.3代码层面
多线程
改善内存管理
3.1.3.4数据库服务器端
索引
缓存
sql优化
nosql
优化数据库模型
存储结构
伸缩
3.1.3.4.性能指标
响应时间
执行一个操作的需要的时间
并发数
吞吐量
TPS
Transactions Per Second
每秒传输的事务处理个数
包括一条消息入和出加上一次用户对数据库的访问
系统性能计数器
线程
内存
io
系统敷在
3.1.3.5.性能指标的作用
分析系统瓶颈
预测网站容量
异常指标进行报警
3.2.可用性
3.2.1主要手段
冗余
就是提供多台这样的服务器,在有一台坏掉的情况下,保证服务始终可用
应用服务器层面
负载均衡服务器
负责请求合理转发
应用服务器集群
存储服务器
服务器集群
相互备份
软件设计
各种自动化
3.3.伸缩性
主要标准
是否可以多台服务器构建集群
添加新服务器
和原来服务 无差别
集群服务器的数量限制
3.4.扩展性
主要标准
增加新产品
透明
很少改动业务功能
主要手段
事件驱动架构
代表nodejs
消息队列
生产者消费者模式
分布式服务
业务
可复用服务
分离
3. 5.安全性
标准
针对现存和潜在的各种攻击手段与窃密手段,是否有可靠的应对策略
4.瞬时响应:网站的高性能架构
4.1标准
网站性能是客观主标
用户感受才是主要的
4.2网站性能测试
4.2.1不同视角的网站性能
用户视角
浏览器直观感受
开发人员视角
应用程序和系统
运维人员视角
基础设施性能
资源利用率
网络带宽
服务器硬件
数据中心网络架构
带宽利用率
4.2.2测试方法
性能测试
负载测试
压力测试
稳定性测试
性能优化策略
根据排查
web前段性能优化
应用服务器性能优化
存储性能优化
详细思维导图地址
https://gitee.com/hugo110/xmind-books/tree/master/架构