如何提高項目並發量


# 1 web,app,微信小程序
# 2 web項目
    -前端:
        -用cdn,靜態資源,放到cdn上(js,css,靜態圖片)
        -用精靈圖(一個大圖,上面又很多小圖,用定位,定位到小圖)
        -前端緩存(響應頭設置緩存時間)cache-control  (django如何向響應頭寫鍵值對:響應對象["aaa"]="aaa"-nginx:
        -nginx做集群(dns解析,負載均衡硬件 f5)
        -動靜分離(靜態資源直接通過nginx轉發,拿去;uwsgi只負責處理動態請求)
        -負載均衡(nginx的配置)
        -集群化部署
        -拆服務(把項目做成分布式)
    -使用uwsgi(c寫的wsgi服務器)部署,使用gunicorn(python寫的wsgi服務器)部署
    -代碼層面:
        -緩存(redis)--》本來一個請求,要查5個表,耗時3s---》json格式--》放到緩存中--》下次再發請求,直接去緩存查---》0.001秒就返回了-----》(存在問題:緩存擊穿,緩存穿透,緩存雪崩   雙寫一致性問題)
        -頁面靜態化(不適用於app和小程序),提前生成一個首頁頁面(被訪問頻繁的頁面)
            -/index--->(查數據庫(用了緩存)---》dtl渲染頁面)--》提前生成出index.hmtl---》django模板渲染
            -數據不一致(當有數據增加,再重新生成一次這個頁面),同步?異步?
            -用異步:用celery,django的信號(異步操作),當對象保存時,重新生成靜態頁面
        -異步操作(celery),一個請求需要耗時3s,設計成異步--請來了--》直接返回(任務已提交,請求正在處理)
            -小米秒殺:您正在排隊(前端設置了定時,每隔5s,發送一個請求,查是否秒殺成功)
            -保存視頻,發送郵件,保存文章,
            -后台管理,統計最近三,五,半年,個月的訂單量--》折線圖,餅狀圖展示
            -消息隊列:rabbitmq,kafka。。。異步,解耦
        -請求打到數據庫了(只要打到數據庫,性能就下來了)
            -優化sql,外鍵盡量不建立,適當建索引
            -讀寫分離,數據庫集群,分庫分表
        -優化代碼,多線程處理,盡量不在for循環里查數據庫
        
        -換框架(異步框架),換語言
--代碼優化不了了,壘機器
        
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM