高併發(high concurrency)是網際網路分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。
提高系統併發能力的方式,方**上主要有兩種:垂直擴充套件(scale up)與水平擴充套件(scale out)。
處理高併發有三種手段:
1、橫向擴充套件: 增加伺服器數量
2、縱向擴充套件:提高單機伺服器配置
3、 應用層利用快取減少io次數,提高併發訪問處理速度(推薦redis做快取)
4、快取要比記憶體快(快取是從記憶體直接讀取,所以讀取的速度快。一般資料是從磁碟讀取,而磁碟讀取要有 尋到 和 尋子)
- 瀏覽器快取:就是把一些靜態資源放在瀏覽器上,使用者不需要訪問,伺服器直接開啟,瀏覽器有快取就直接看到了
頁面靜態化:就是一種快取,把頁面提前渲染好展示在頁面,相似於類快取。
1、負載分發:把大量請求**到nginx中,然後負載分發,通過 uwsgi後端介面
2、服務層:服務層的水平擴充套件,是通過「服務連線池」實現的。
3、資料層: 在資料量很大的情況下,資料層(快取,資料庫)涉及資料的水平擴充套件,將原本儲存在一台伺服器上的資料(快取,資料庫)水平拆分到不同伺服器上去,以達到擴充系統效能的目的。
nginx swoole高併發原理初探
為了更加形象的說明同步非同步 阻塞非阻塞,我們以小明去買奶茶為例。同步與非同步的理解 同步與非同步的重點在訊息通知的方式上,也就是呼叫結果通知的方式。非同步呼叫,要想獲得結果,一般有兩種方式 1 主動輪詢非同步呼叫的結果 2 被呼叫方通過callback來通知呼叫方呼叫結果。生活例項 同步買奶茶 小...
解析Redis 高併發原理
1 單執行緒模型 redis客戶端對服務端的每次呼叫都經歷了傳送命令,執行命令,返回結果三個過程。其中執行命令階段,由於redis是單執行緒來處理命令的,所有每一條到達服務端的命令不會立刻執行,所有的命令都會進入乙個佇列中,然後逐個被執行。並且多個客戶端傳送的命令的執行順序是不確定的。但是可以確定的...
Kafka高併發原理概述
kafka是高吞吐低延遲的高併發 高效能的訊息中介軟體,在大資料領域有極為廣泛的運用。配置良好的kafka集群甚至可以做到每秒幾十萬 上百萬的超高併發寫入。那麼kafka到底是如何做到這麼高的吞吐量和效能的呢?這篇文章我們來一點一點說一下。首先kafka每次接收到資料都會往磁碟上去寫,如下圖所示。那...