如何提高项目的并发量

如何提高项目的并发量

减少交互,提高接口并发

前端

  1. 移动端还是web段,静态资源,使用cdn
  2. 图片短视频都放在第三方存储上
  3. 精灵图,将一些小图标做成一个图,在前端通过定位
  4. 适用前端存储,放在vuelocalstory,存放一些不敏感的信息
  5. 前端缓存:响应头中的cache-control中的max-age设置过期时间,在过期时间内就不会向服务器发送请求

后端

  1. 使用nginx转发(不是直接使用uwsgi接受http,而是通过nginx转发socket来接收,这样走的更底层就会更快,uwsgi协议)
  2. 使用性能高的wsgi服务器部署项目(uwsgi,gunicorn)
  3. 起多个uswgi+django服务,监听多个端口
  4. nginx做负载均衡
  5. 多态机器上起多个uswgi+django,nginx做负载均衡(nginx单个并发10w)
  6. 动静分离,uwsgi只负责处理动态请求,静态请求直接用nginx去取
  7. 静态资源(头像,图片),cdn,放在第三方云平台,oss,七牛云,公司自己搭建存储服务器(fastdfs,ceph)
  8. 页面静态化(首页,秒杀场景秒杀页面),数据同步问题(只要数据库变更(管理员更新了轮播图)了静态化的页面需要重新生成(celery使用场景))
  9. 单台nginx顶不住,nginx做集群,高可用keepalive,F5的硬件负载均衡器 ,dns的负载均衡

代码层面

  1. 使用异步,使用多线程,或者用协程
  2. 更复杂的耗时更长的使用celery,或者使用消息队列(rabbitmq),把任务做成异步
  3. 数据库查询语句优化,sql索引的创建,尽量不要再for循环中执行,长慢sql
  4. 使用缓存接口缓存,redis,redis再顶不住,搭主从,哨兵,再不行集群,弄多台机器
  5. 个别接口全用缓存(qps高的接口)
  6. 使用全文检索es,再给es搭集群
  7. 代码逻辑层间,写一写执行较快的逻辑,猴子补丁
  8. 换语言,写成一个个服务,一点点替换
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值