zoukankan      html  css  js  c++  java
  • 如何提高项目并发量

    0 两个大点:减少交互,提高接口并发

    前端

    1 移动端还是web端,静态资源,使用cdn
    2 图片,短视频,放在第三方存储上
    3 精灵图,好多小图片做成一个图,在前端通过定位
    4 使用前端存储
    5 前端缓存:响应头中有Cache-Control:max-age=xxx

    后端部署

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

    代码层面

    14 使用异步,使用多线程,用协程
    15 使用异步任务框架celery,使用消息队列(rabbitmq),把任务做成异步
    16 数据库查询语句优化,sql索引的创建,尽量不要在for循环中执行sql,常慢sql,  读写分离,集群,分库分表
    17 使用缓存,接口缓存,redis,主从,哨兵,集群,6台机器
    18 个别接口全用缓存(qps高的接口)
    19 搜索场景使用全文检索es,集群
    20 代码逻辑层面
    21 考虑换语言,写成一个个服务,一点点替换
  • 相关阅读:
    BETA 版冲刺前准备
    第十一次作业
    Alpha 冲刺 (10/10)
    Alpha 冲刺 (9/10)
    Alpha 冲刺 (8/10)
    Alpha 冲刺 (7/10)
    Alpha 冲刺 (6/10)
    Alpha 冲刺 (5/10)
    Alpha 冲刺 (4/10)
    抽奖系统现场编程
  • 原文地址:https://www.cnblogs.com/ZhZhang12138/p/14886784.html
Copyright © 2011-2022 走看看