架构优化-前端与应用

一、前端优化:浏览器访问、反向代理、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 

相关推荐