python高併發的解決方案

python高併發的解決方案

一.cdn加速

簡單說就是把靜態資源放到別人服務器上

全稱:Content Delivery Network或Content Ddistribute Network,即內容分發網絡

基本思路

儘可能避開互聯網上有可能影響數據傳輸速度和穩定性的瓶頸和環節,使內容傳輸的更快、更穩定。通過在網絡各處放置節點服務器所構成的在現有的互聯網基礎之上的一層智能虛擬網絡,CDN系統能夠實時地根據網絡流量和各節點的連接、負載狀況以及到用戶的距離和響應時間等綜合信息將用戶的請求重新導向離用戶最近的服務節點上。

目的

解決因分佈、帶寬、服務器性能帶來的訪問延遲問題,適用於站點加速、點播、直播等場景。使用戶可就近取得所需內容,解決 Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度和成功率。

控制時延無疑是現代信息科技的重要指標,CDN的意圖就是儘可能的減少資源在轉發、傳輸、鏈路抖動等情況下順利保障信息的連貫性。

CDN就是扮演者護航者和加速者的角色,更快準狠的觸發信息和觸達每一個用戶,帶來更爲極致的使用體驗。

二.精靈圖

什麼是精靈圖:

css精靈,是一種網頁圖片應用處理技術。主要是指將網頁中需要的零星的小圖片集成到一個大的圖片中

應用的原因: 
1.減少對瀏覽器的請求次數,避免網頁的延遲 
2.方便小圖標的統一管理

精靈圖的製作: 
1.軟件:ps 
2.製作方法:

新建透明圖層
添加參考線將畫布劃分,將小圖標放入劃分好的格子中

三.後臺數據庫使用mysql+Redis

mysql是持久化存儲,存放在磁盤裏面,檢索的話,會涉及到一定的IO,爲了解決這個瓶頸,於是出現了緩存,比如現在常用的 redis。首先,用戶訪問緩存,如果未命中,就去訪問mysql,之後將mysql中的數據複製到緩存中。

redis是緩存,並且是駐留在內存中運行的,這大大提升了高數據量web訪問的訪問速度。redis提供了大量的數據結構,比如string、list、set、hashset、sorted set這些,之後用戶的訪問就能直接從Redis的內存中去取數據了,那內存的讀取速度遠遠大於硬盤

四.數據庫的優化

1.sql的優化

2.索引的優化

3.分庫分表

4.讀寫分離

五.使用緩存

例如python-django-restframework自帶的緩存

六.集羣化的部署

例如:django+uwsgi+nginx

詳細部署內容請點擊這裏:https://www.cnblogs.com/alex3714/p/6538374.html

七.分佈式+異步

celery:就是一個分佈式異步的解決方案

這裏詳細的celery解釋:https://www.cnblogs.com/alex3714/p/6351797.html

八.語言層面

例如:在一些併發量更多的地方,該用golang語言編寫

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章