李智慧[网站高性能架构]读书笔记 [ 未指定版本 ]
web前端性能优化方案
浏览器优化访问
- 减少http请求
合并css,js,图片和其他静态资源,将浏览器一次访问需要的静态资源合并成一个文件,这样浏览器只需要请求一次http - 使用浏览器缓存
- 使用http cache control 和expires属性设置过期时间
- 使用etag,last modified 来验证请求是否有更改,如果没有则返回304,如果更改了,则返回200,请求服务器数据
- 应采用逐量更新的方式,比如更新10个文件,不宜吧10个文件一次全部更新,而是通过设置时间差,使得每个文件的过期时间不一致,以避免浏览器突然大量文件失效,同时请求服务器,造成服务器超载
- 使用http cache control 和expires属性设置过期时间
- 启用压缩
- css放在最前面,js放在最后面,防止浏览器在加载js后立刻执行,会阻塞整个页面
- 介绍cookie传输
cdn加速
cdn的本质是缓存,将缓存存在离用户最近的地方,使用户以最快的速度访问到数据;cdn一般缓存静态资源
反向代理
- 安全性,来自互联网的反问必须啊经过代理服务器,相当于在web服务器和可能来自互联网的攻击之间提供了屏障
- cache,代理服务器都具有cache服务器资源的功能,加速了响应速度,减轻了服务器压力
- 反向代理特有
- 客户端反问服务器的时候,直接先访问反向代理服务器,(对于客户端来说,反向代理服务器就是服务器),而使用正向代理服务器,对于客户来说,直接访问是不会经过代理服务器的,必须指定代理服务器才行
- 反向代理服务器可以实现服务器的负载均衡,通过负载均衡构建的应用集群可以提升系统总体处理能力
- 如果反向代理服务器正好与客户处在同一个网络里面,理论上来说是实现了cdn服务器(cdn原理与此相似)
- 客户端反问服务器的时候,直接先访问反向代理服务器,(对于客户端来说,反向代理服务器就是服务器),而使用正向代理服务器,对于客户来说,直接访问是不会经过代理服务器的,必须指定代理服务器才行
应用服务器性能优化
分布式缓存
缓存的本质是内存的hash表,时间复杂度是O(1),缓存用来存放变化少,访问频繁的数据,且直接访问数据库很慢的数据;网站访问2:8定律;
- 分布式缓存 memcached(互不通信的集成架构)
memcached分布式算法原理
使用消息队列,异步程序
- yii2 redis queue extension
- 改善网站的扩展性,松耦合
- 提升性能
使用集群,负载均衡
代码优化
多线程
- 线程并发安全
资源复用
- 单例模式和对象池
存储性能优化
johnny1991
注册时间:2017-03-26
最后登录:2024-03-05
在线时长:81小时27分
最后登录:2024-03-05
在线时长:81小时27分
- 粉丝26
- 金钱3285
- 威望580
- 积分9895
共 2 条评论
mark,以后会用到
挺好,以后会用到