Loading

如何提高项目并发量

提高的方法

  • 前端
  • 后端
  • 代码优化

前端

  • 使用 cdn加速,静态资源放到 cdn 上(jscss,静态图片),可以使用免费的jsdelivr(https://www.jsdelivr.com/),也可以使用七牛云和阿里之类的。图片,短视频等文件放在第三方存储上。

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

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

后端

  • nginx做转发

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

  • 负载均衡,nginx负载均衡,F5硬件负载均衡,dns负载均衡

  • 动静分离

  • 页面静态化(首页,秒杀页面)

  • 集群化部署

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

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

    • nginx做集群,高可用

代码层面优化

  • 缓存(redis

    • 接口缓存,redis-主从-哨兵-集群(存在问题:缓存击穿,缓存穿透,缓存雪崩 双写一致性问题),个别接口全用缓存
  • 使用异步,多线程,协程,使用异步任务框架celery,使用消息队列(rabbitmq),把任务做成异步

  • 搜索场景用es全文检索

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

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

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

实在不行,考虑换个语言(写成一个个的服务,一点点的替换)

posted @ 2023-02-28 20:00  hkwJsxl  阅读(28)  评论(0编辑  收藏  举报