架构优化-前端与应用
一、前端优化:浏览器访问、反向代理、CDN(内容分发网络,静态文件缓存)
二、浏览器访问:
1、减少HTTP请求,包括合并css、合并js、合并图像文件(通过合并减少请求文件数量)
2、使用浏览器缓存(静态文件)
3、启用文件压缩GZIP,减小文件大小
4、css文件放上面,js文件放下面,
因为css文件加载完后就会渲染页面,放在上面会加快页面渲染
js文件加载后会执行,有时候会阻塞页面
5、服务器动静分离,减小应用服务器压力,也可以减小cookie传输
6、减少cookie传输
三、反向代理:1、缓存静态文件,加速静态文件相应速度
2、可以缓存一些变化不大的动态页面,当页面改动,需要使用一些方法使缓存失效
3、负载均衡
四、应用服务器优化:分布式缓存、异步操作、集群
分布式缓存:
1、作用,缓存访问速度快,可以提高访问速度 ,缓存经过计算的数据,可以减小计算消耗
使用规则遵循二八定律,缓存读写比高(2:1以上)的20%数据。
2、合理使用:数据修改频率、没有热点(不遵循二八原则),缓存可用性、缓存预热和缓存穿透(访问没有的数据,总是可以访问到数据库)
五、分布式缓存种类:
1、JBoss Cache为代表的同步的分布式缓存,缓存服务器与应用服务器部署在同一台机器上
2、Memcached 不互相通信的分布式缓存,通常被网站使用。
代码优化:1、多线程(无状态对象和锁)
2、资源复用(主要针对创建和销毁开销比较大的资源如数据库连接、网络通信连接、线程等)通过单例或对象池进行管理
六、一些关键词的理解:
带宽
响应时间
下载速度
吞吐率: 相同并发吞吐率越高,说明单位时间内处理的请求越多,性能越好。
用户请求等待时间:越小越好,即处理的越快
服务器平均请求处理时间:越小越好,即处理的越快
七、压力测试工具ab使用
ab工具压力测试查看以上三个指标 ab -n1000 -c10 http地址
系统负载:cat /proc/loadave ,系统负载对
八、浏览器的一些优化
进程切换:Nmon监控查看ContextSwitch,对于并发情况下,那种服务器ContextSwitch小即CPU切换次数少
则该服务器性能好。因为CPU切换要花费很多系统资源
keep-live:长连接,
缓存:动态内容静态化、
浏览器缓存,Last-Modified、Expires、Cache-Control
Web服务器缓存
九、反向代理服务器:nginx,Squid,Varnish
十、动静分离:静态页面赋予不同的二级域名(浏览器对同一种域名下文件并发数目是有限的)
十一、分布式缓存Memcache:读写与服务器扩展
十二、项目后期可能需要工具来部署项目,文件分发
JSch - Java实现的SFTP ,可以实现文件上传分发 、 WebDAV