# 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循環里查數據庫 -換框架(異步框架),換語言 --代碼優化不了了,壘機器