高併發原理

2021-10-21 18:32:53 字數 793 閱讀 9594

高併發(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每次接收到資料都會往磁碟上去寫,如下圖所示。那...