提高项目并发量

提高项目并发量

1. 前端

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

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

3. 前端缓存(响应头设置缓存时间)cache-control (django如何向响应头写键值对:响应对象["aaa"]="aaa")

2. nginx

1. nginx做集群(dns解析,负载均衡硬件 f5)

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

3. 负载均衡(nginx配置)

4. 集群化部署

5. 拆服务(分布式)

3. 项目部署

替代性能低的wsgiref部署项目

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

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

4. 代码层面

1. 做缓存(redis)

2. 页面静态化(不适用于app和小程序),提前生成一个首页页面(被访问频繁的页面),数据不一致(当有数据增加,再重新生成一次这个页面),用异步:用celery,django的信号(异步操作),当对象保存时,重新生成静态页面

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

  • 小米秒杀:您正在排队(前端设置了定时,每隔5s,发送一个请求,查是否秒杀成功)
  • 保存视频,发送邮件,保存文章
  • 后台管理,统计最近三,六个月的订单量--》折线图,饼状图展示

4. 数据库优化,优化sql,外键尽量不建立,适当建索引,读写分离,数据库集群,分库分表

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

5. 代码优化不了的,垒机器

 

posted @   Mr沈  阅读(286)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示

目录