• 如何提高项目并发量


    1 前端

    用 cdn,静态资源放到 cdn 上(js,css,静态图片)

    用精灵图(一个大图,上面有很多小图,用定位,定位到小图)

    前端缓存(响应头设置缓存时间)


    2 服务器

    Nginx 做集群(dns 解析)

    动静分离(静态资源直接通过nginx转发,拿去;uwsgi只负责处理动态请求)

    负载均衡(nginx的配置)(负载均衡硬件 f5)

    集群化部署

    拆服务(把项目做成分布式)

    使用uwsgi(c写的wsgi服务器)部署,使用gunicorn(python写的wsgi服务器)部署


    3 代码层面

    缓存(redis)--》本来一个请求,要查5个表,耗时3s---》json格式--》放到缓存中--》下次再发请求,直接去缓存查---》0.001秒就返回了-----》(存在问题:缓存击穿,缓存穿透,缓存雪崩 双写一致性问题)

    页面静态化(不适用于app和小程序),提前生成一个首页页面(被访问频繁的页面)

    index--->(查数据库(用了缓存)---》dtl渲染页面)--》提前生成出index.hmtl---》django模板渲染

    异步操作(celery),一个请求需要耗时3s,设计成异步--请来了--》直接返回(任务已提交,请求正在处理)

    优化sql,外键尽量不建立,适当建索引

    数据库读写分离,数据库集群,分库分表

    优化代码,多线程处理,尽量不在for循环里查数据库

  • 相关阅读:
    五步轻松实现对现代浏览器的兼容
    本地存储—localStorage(HTML5)
    浏览器本地存储(browser-storage)
    behavior
    CodeForces
    Codeforces 982C(dfs+思维)
    Codeforces 982C(dfs+思维)
    P3370 【模板】字符串哈希
    codeforces 985E Pencils and Boxes(dp+思维)
    codeforces 985E Pencils and Boxes(dp+思维)
  • 原文地址:https://www.cnblogs.com/kai-/p/12845632.html
Copyright © 2020-2023  润新知