总结概括对于大数据、高并发的网站如何进行优化的问题

对于大数据、高并发的网站,如何进行优化?我这里作出一个概括性的总结,以后慢慢细化与完善,可能存在不全或有误的地方,欢迎大家一起交流,谢谢!

服务器端:

1.采用缓存或分布式缓存技术(cache、memcached、redis、MongoDB),针对不经常变动的数据进行缓存,降低请求数据库的频率;

2.针对耗时的处理采用异步/并行技术来提高服务器的可用并发量;

3.利用WEB SERVICE,WCF,WEB API,消息队列(MSMQ,RabbitMQ)等技术实现分布式业务逻辑处理及数据访问的能力;

4.运用合理的设计模式及架构,提高代码的利用率(如:DDD,SOA,AOP,DI);

5.页面GZIP压缩,降低服务器发送的字节数;

6.启用keep-alive(IIS设置keep-alive存在问题,详见:微软IIS对http keep-alive的“霸道”处理)

数据库端:(参考我之前文章:关于SQL SERVER高并发解决方案

1.数据库读写分离,可采用数据库同步技术,实现一个可写数据库,多个镜像只读数据库,简称为分库;

2.数据库表按读写或使用频率进行横向或纵向切割表,同时建立表分区,将不同的数据存储在不同的物理位置,以降低磁盘的IO读写,简称为分表;

3.SQL查询语句优化(包括索引,查询字段,过滤条件,存储过程,事务隔离级别等);

 

WEB前端:

1.压缩网页各类代码(HTML,CSS,JS);

2.采用多台服务器分别部署网页、静态资源(图片,文件等);

3.采用JS异步加载,图片延迟加载技术;

4.尽可能的减少JS文件数量,且将JS文件放到网页底部;

5.采用图片合成技术,将多个图标合成一个大图,以降低请求数量;

6.采用图片拼接技术,将大图利用第三方软件(如:PS)切成多个小图,以降低服务端响应时间;

7.采用AJAX异步请求技术,实现局部请求服务器资源,以降低请求与响应时间;

8.其它前端优化技术(比如:利用HTML5的本地网页缓存技术,DNS 预解析技术);

 

硬件(不是很懂):

1.提升服务器内存,硬盘等核心硬件性能;

2.实现服务器集群与虚拟化(参考:集群与虚拟化);

3.采用负载均衡技术;

posted @ 2015-11-05 10:11  梦在旅途  阅读(1220)  评论(0编辑  收藏  举报