分布式 負載均衡Nginx

2022-07-11 11:15:16 字數 1946 閱讀 3237

step1、伺服器快取:降低資料庫壓力;

step2、第一定律:就是不要使用分布式;

分布式:多台伺服器完成一台伺服器做的事;

每台服務完成步驟,序列完成全部(狹義分布式)

廣義來說,集群也是分布式;

step3、系統效能優化第一步就是快取cache:

優點:1、降低伺服器壓力;

2、提公升相應速度;

3、成本低;

缺點:資料更新不及時

step4、集群(cluster)負載均衡

集群定義:一台伺服器做的事,現在由多台伺服器共同承載,每台伺服器都是獨立完成的

step5、讀寫分離

資料庫瓶頸:資料庫的讀寫分離

木桶理論:裝水能力是由最短的那塊板決定的

資料庫的唯一性

step6、cdn快取(集群負載均衡之前)

優點:1、縮短網路路徑,加快相應速度

2、減少

step7、分布式檔案系統(distributed file system)

step8、專項突破

場景一:全文搜尋

非規範性搜尋,不是嚴格匹配資料庫的資料;(關係型資料庫做不到)(luene----solr----es)

全文檢索技術,分詞建索引--搜尋時分詞--搜尋出來的詞搜尋--能匹配不要求完全匹配--能最大程度上搜尋出相關詞彙

場景二:秒殺系統

在高併發下,多個執行緒併發更新庫存,導致庫存為負的情況下--超賣問題

1、基於資料庫的鎖 -- 悲觀鎖 -- 無法滿足高併發

2、樂觀鎖 -- version -- 多個併發只有乙個成功 -- 不會超賣

限流:限制請求達到資料庫

防超賣:不能出現庫存不夠;

redis(remote dictionary server)-- 遠端字典伺服器 -- 記憶體快速讀寫

單執行緒多程序模型 -- 只有乙個執行流,只有乙個人做事兒 -- 10wqps -- 沒有執行緒安全問題

場景三:刷榜

直播間刷禮物,實時統計排行,redis

二八原則:

80%的請求聚焦在20%的資料上

80%的請求都是查詢20%是增刪改;

讀寫分離:一主多從,發布訂閱

寫庫:增刪改

讀庫:查詢,資料來自發布伺服器

發布伺服器:主庫增刪改操作後,推送日誌到補發伺服器,從庫訂閱,基於日誌完整資料同步;

不限制從庫的個數;

dns(domain name system)負載均衡

1、部署多個獨立的ip對外提供服務

2、dns伺服器配置多個ip

3、dns解析時**

優點:高效,就近原則

缺點:只能輪訓,獨立ip很貴,不能錯誤發現

硬體負載均衡:

f5、array、netscale  硬體+軟體打包

效能高,穩定好,廠商支援

軟體負載均衡:

lvs--linux virtual server  4層協議(ip+port)  -- 輪訓**(不能根據儲存資訊**)  --更底層更高效--配置很難

haproxy--4層/7層--http協議/http資訊--**更加靈活--非常強大--也不太好配置

nginx:http,https  協議

各種策略:

輪詢(預設)----weight---- ip-hash ---- fair策略 ---- url-hash 

使用者持久化:ip-hash--會話沾滯--侷限性很強

session共享--inproc/stateserver/sql server--redis session

基於httpheader----cookie/jwt(token/identityserver4)

集群 分布式 負載均衡

1 linux集群主要分成三大類 高可用集群,負載均衡集群,科學計算集群 負載均衡集群 load balance cluster 負載均衡系統 集群中所有的節點都處於活動狀態,它們分攤系統的工作負載。一般web伺服器集群 資料庫集群和應用伺服器集群都屬於這種型別。負載均衡集群一般用於相應網路請求的網...

集群,負載均衡,分布式

簡潔明瞭的解釋 記錄一下 集群 一堆伺服器互聯 負載均衡 一堆伺服器分攤壓力 分布式 一堆伺服器分開工作 相對來說,集群一般是指一堆伺服器去做同一項工作,一般是集中高速互聯實現快速的運算,對外的感覺是一台伺服器。負載均衡也是一堆伺服器做同一項工作,不同的伺服器做的事情基本相同,但是對外能發現是不同的...

集群 分布式 負載均衡

計算機集群通過一組鬆散整合的計算機軟體和 或硬體連線起來高度緊密地協作完成計算工作。集群系統中的單個計算機通常稱為節點。集群計算機通常用來改進單個計算機的計算速度和可靠性。單個重負載的運算分擔到多台節點裝置上做並行處理,每個節點裝置處理結束後,將結果彙總,返回給使用者,系統處理能力得到大幅度提高。乙...