2.大型网站技术架构详说
程序员文章站
2022-07-12 17:50:16
...
2.大型网站技术架构详说
1.瞬时响应:网站的高性能架构
1.网站性能测试:
1.不同视角下的网站性能
用户视角的网站性能:
从用户角度来说 就是用户在浏览器上直观感受到的网站响应速度的快慢
开发人员视角的网站性能:
关注的主要是应用程序本身及其相关子系统的性能
包括响应延迟 系统吞吐量 并发处理能力 系统稳定性等技术指标
运维人员视角的网站性能:
关注基础设施性能和资源利用率
如网站运营商的带宽能力 服务器硬件的配置 数据中心网站架构
服务器和网络带宽的资源利用率
2.性能测试指标:
响应时间 并发数 吞吐量 性能计数器
3.性能测试方法
性能测试 负载测试 压力测试 稳定性测试
4.性能测试报告
5.性能优化策略:性能分析 性能优化
2.Web前端性能优化
1.浏览器访问优化
减少http请求 使用浏览器缓存 启用压缩
CSS放在页面最上面 JavaScript放在页面最下面
减少Cookie传输
2.CDN加速
3.反向代理
3.应用服务器性能优化
1.分布式缓存
1.缓存的基本原理
2.合理使用缓存
频繁修改的数据 没有热点的访问 数据不一致与脏读
缓存可用性(缓存预热 缓存穿透)
3.分布式缓存架构
4.Memcached
简单的通信协议 丰富的客户端程序 高性能的网络通信
高效的内存管理 互不通信的服务器集群架构
2.异步操作
使用消息队列将调用异步化 可改善网站的拓展性
事实上 使用消息队列还可以改善网站系统的性能
3.使用集群
4.代码优化
1.多线程
将对象设计为无状态对象
使用局部对象 并发访问资源时使用锁
2.资源复用
3.数据结构
4.垃圾回收
4.存储性能优化
机械硬盘 vs 固态硬盘
B+树 vs LSM树
RAID vs HDFS
2.万无一失:网站的高可用架构
1.网站可用性的度量与考核
1.网站可用性度量
2.网站可用性考核
2.高可用的网站架构
3.高可用的应用
1.通过负载均衡进行无状态的失效转移
2.应用服务器集群的Session管理
Session复制 Session绑定 利用Cookie记录Session Session服务器等
4.高可用服务
分级管理 超时设置 异步调用 服务降级 幂等性设计
5.高可用的数据
1.CAP理论:数据持久性 数据可访问性 数据一致性(分为数据强一致 数据用户一致 数据最终一致)
2.数据备份:
3.失效转移:失效确认 访问转移 数据恢复
6.高可用网站的软件质量保证
1.网站发布
2.自动化测试
3.预发布验证
4.代码控制
1.主干开发 分支发布
2.分支开发 主干发布
5.自动化发布
6.灰度发布
7.网站运行监控
1.监控数据采集
1.用户行为日志记录
服务器端日志收集 客户端浏览器日志收集
2.服务器性能监控
3.运行数据报告
2.监控管理
系统报警 失效转移 自动优雅降级
3.永无止境:网站的伸缩性架构
1.网站架构的伸缩性设计
1.不同功能进行物理分离实现伸缩
2.单一功能通过集群规模实现伸缩
2.应用服务器集群的伸缩性设计
1.HTTP重定向负载均衡
2.DNS域名解析负载均衡
3.反向代理负载均衡
4.IP负载均衡
5.数据链路层负载均衡
6.负载均衡算法(轮询 加权轮询 随机 最少连接 源地址散列)
3.分布式缓存集群的伸缩性设计
1.Memcached分布式缓存集群的访问模型
2.Memcached分布式缓存集群的伸缩性挑战
3.分布式缓存的一致性Hash算法
4.数据存储服务器集群的伸缩性设计
1.关系数据库集群的伸缩性设计
2.NoSQL数据库的伸缩性设计
4.随需应变:网站的可扩展架构
1.构建可扩展的网站架构
2.利用分布式消息队列降低系统耦合度
1.事件驱动架构
2.分布式消息队列
3.利用分布式服务打造可复用的业务平台
1.Web Service与企业级分布式服务
2.大型网站分布式服务的需求与特点
负载均衡 失效转移 高效的远程通信
整合异构系统 对应用最少侵入
版本管理 实时监控
3. 分布式服务框架设计
4.可扩展的数据结构
5.利用开发平台建设网站生态圈
5.固若金汤:网站的安全架构
1.道高一尺魔高一丈的网站应用攻击与防御
1.XSS攻击
2.注入攻击
3.CSRF攻击
4.其他攻击和漏洞
5.Web应用防火墙
6.网站安全漏洞扫描
2.信息加密加速及**安全管理
1.单向散列加密
2.对称加密
3.非对称加密
4.**安全管理
3.信息过滤与反垃圾
1.文本匹配
2.分类算法
3.黑名单
4.电子商务风险控制
1.风险
2.风控:规则引擎 统计模型