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