1. 程式人生 > 程式設計 >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

七.分散式+非同步

celery:就是一個分散式非同步的解決方案

八.語言層面

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。