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


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

    服务器端:

    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.采用负载均衡技术;

  • 相关阅读:
    1104--DNA排序
    poj1050-To the Max
    编译:一个 C 程序的艺术之旅(转载)
    大话同步/异步、阻塞/非阻塞(转载)
    Windows 在 git bash下使用 conda 命令
    Python Multiprocessing 多进程,使用多核CPU计算 并使用tqdm显示进度条
    Python 写入训练日志文件并控制台输出
    nn.Conv2d 参数及输入输出详解
    Python中 list, numpy.array, torch.Tensor 格式相互转化
    Linux 上传代码到github
  • 原文地址:https://www.cnblogs.com/zuowj/p/4938571.html
Copyright © 2020-2023  润新知