如何提高项目并发量
前端:
1.用cdn,静态资源,放到cdn上,使用第三方存储(js,css,静态图片)
2.用精灵图(一个大图,上面有很多小图,用定位,定位到小图),一次请求拿回来的图,以后好多位置可以用
3.前端缓存(响应头设置缓存时间)cache-control
高性能web服务器部署项目:nginx:
1 nginx的请求转发,nginx性能高,负载均衡(单台nginx性能约几千)
2 nginx做集群(dns解析负载,负载均衡硬件 f5)
3 动静分离(静态资源直接通过nginx转发,拿去;uwsgi只负责处理动态请求)
4 集群化部署
5 拆服务(分布式,微服务)
项目部署(使用性能高服务器部署项目:gevent+uwsgi):
详情见:-https://zhuanlan.zhihu.com/p/358163330
1 替代性能低的wsgiref部署项目-使用uwsgi(c写的wsgi服务器)部署
2 使用gunicorn(python写的wsgi服务器)部署
后端:
1 做缓存(redis)
2 页面静态化(不适用于app和小程序):
-提前生成一个首页页面(被访问频繁的页面)做静态化资源,数据不一致(当有数据增加,再重新生成一次这个页面),用异步:用celery,django的信号(异步操作),当对象保存时,重新生成静态页面
3 异步操作(celery),一个请求需要耗时3s,设计成异步--请来了--》直接返回(任务已提交,请求正在处理)
-小米秒杀:您正在排队(前端设置了定时,每隔5s,发送一个请求,查是否秒杀成功)
-保存视频,发送邮件,保存文章
-后台管理,统计最近三,六个月的订单量--》折线图,饼状图展示
4 数据库优化,优化sql,外键尽量不建立,适当建索引,读写分离,数据库集群,分库分表
5 优化代码,尽量不在for循环里查数据库---》算法
6 换语言