一、性能优化
一. web前端性能优化
1. 浏览器访问优化
减少http请求:主要手段是将css、javascript、图片等内容合并。
使用浏览器缓存:对于更新频率比较低的静态资源缓存在浏览器中。
启用压缩:在服务器压缩文件在浏览器上解压缩。
CSS放在页面最上,javascript放在页面最下。
减少cookie传送:一方面cookie太大影响数据传输,另一方面对资源的访问如css、script等不需要cookie这种考虑采用独立域名访问静态资源(避免域名污染)。
2. CDN加速
CDN的本质其实就是将网站上的静态内容缓存到离用户最近的网络提供商的机房内CDN服务器上。
3. 反向代理
反向代理位于web服务器一侧,代理服务器接收http请求,可以保护web服务器功能,缓存静态资源,负载均衡等功能。
二. 应用服务器性能优化
1. 分布式缓存
缓存原理
合理使用缓存
分布式缓存架构
更新同步分布式缓存:JBoss Cache代表,在集群中的所有服务器中保存相同的缓存数据,当某台服务器缓存更新时需要同步到其他服务器缓存数据。
不互相通信的分布式缓存:Memcached代表,缓存于应用分离部署,缓存部署在一组专门的服务器上,应用通过一致性Hash等路由算法选择缓存服务器远程访问缓存数据。
Memcached
简单的通信协议:TCP通信协议,自定义的数据序列化协议(memcached使用的是一套基于文本的自定义协议:以一个命令关键字开头,后面是一组命令操作数)。常见的数据序列化协议有XML、JSON、Protobuffer,Protobuffer生成的数据文件占用较小空间。
丰富的客户端程序:支持多种语言使用。
高性能网络通信
高效的内存管理
互不通信的服务器集群架构
2. 异步操作
使用消息队列:消息队列有很好的销峰作用。
3. 使用集群
4. 代码优化
多线程
将对象设计为无状态对象
使用局部对象:在方法内部创建对象,这些对象就会被每个进入该方法的线程创建。
并发访问资源时使用锁
资源复用
单例和对象池。
数据结构
垃圾回收
三. 存储服务器性能优化
二、高可用性
三、伸缩性架构