本周闲着无聊,学习了下网站优化的相关知识,一个类似BAT这样每日访问几百万pv的网站,是如何做到不崩溃的。下面总结主要的几点:
一.前端优化,指的是请求还没有到达真正的应用服务器之间的可优化的操作
1.减少http请求数,避免html前段页面内出现地址重定向
2.CSS放头部,加速渲染页面,JS尾部,避免阻塞页面,这个我想到家都懂的吧
3.页面中的一些图片资源可以合并成一张图的尽量合并起来,可以利用CSS 属性定位坐标实现类似的图片的裁剪
4.少用内联样式和行内脚本,写成外联样式可以利用浏览器的缓存功能加速页面的加载
5.浏览器中开启gzip压缩,不要小瞧这个操作,gzip的压缩比还是很高 的
6.采用CDN加速,和反向代理技术,CDN可以让找到离请求最近的一个缓存服务器中,加速请求相应,反响代理服务器也是类似功能,在请求方和目的服务器地址中间充当缓存服务器的作用,可以缓存静态资源
二.后台优化
1.首当其冲的是负载均衡技术,这里负载均衡的有很多类,比如DNS负载均衡,ip负载均衡等等
2.服务集群处理,这个得和负载均衡一起使用才能发挥出他的强大的威力
3.分布式服务,将服务分层划分,比如细化到登录模块,和订单模块,商品模块,都可以独立的分出模块服务,也变得好维护很多
4.分布式缓存,比如门memcached,内存服务器,可以大大减轻访问数据库的压力
5.数据备份,采用主从模式,实现数据读写分离操作,当主服务器宕机的时候,还能马上切换到备份服务器上
6.采用nosql,比如Redis,或是mongodb,实现数据的简单存储,可以看看Hadoop中的HBase+Zookeeper+HDFS实现分布式计算存储,没有用到关系数据库
7.采用MQ消息队列异步处理事件,可以减少瞬间的高负载所带来的对服务器的冲击,网上开源的MQ框架有Apache ActiveMQ
就随便写了上述几点,当然说说是比较容易的,实际的操作只有经历过的人才能体会其中的艰辛,如果上述几点你都有经历过,那我相信你离一个成功的架构师不远了