如何實現負載均衡

2021-08-21 11:42:50 字數 1443 閱讀 8161

當大家提起高併發的時候,必然會提到 負載均衡 ,什麼是負載均衡呢?這樣做又有什麼好處呢?我們繼續往下看:

一、什麼是負載均衡

1.這是沒有用負載均衡的情況,使用者都是直接請求到一台伺服器上,併發量不大的時候不建議採用負載均衡,畢竟需要多台伺服器來支撐,成本也是非常高昂的;但是使用者量大的時候,伺服器承載壓力就會變大,如果出現宕機的情況,那就直接gg了;

2.採用負載均衡的話,使用者請求的時候,伺服器a會根據不同的策略(具體策略下面詳細剖解),分配到伺服器(b、c、d)其中一台;這樣的話,每台伺服器都可以承擔壓力,就算其中一台伺服器宕機的時候,還有其他伺服器來支援,也不會導致系統停運,請求位址在使用者看來都是一樣的,只是後台請求的是不同伺服器,使用者無感知變化;

二、nginx配置負載均衡

大家需要需要準備三颱安裝上nginx的伺服器,配置過程不會太複雜;

1.開啟nginx的配置檔案(nginx.conf),修改以下配置

2.重啟nginx伺服器,輸入service nginx restart 即可!

1.輪詢(預設)

請求依次輪流往每個應用伺服器上進行分配,分配策略比較簡單。 

缺點:不均勻,可能會出現,某些伺服器接受的請求較重,負載壓力重,有些負荷小,不可控。另外伺服器之間需要進行session同步。

2.權重輪詢(權重越高,進入的機率越大)

優點:可以根據情況進行調整。可控,仍然需要進行session同步。

3.ip-hash

優點:無需進行session同步,固定ip會固定訪問一台伺服器。 

缺點:惡意攻擊,會造成某台伺服器壓垮。提供的服務不同,面向的地區不同,ip可能會出現集中,造成不均勻,不可控。

4.fair

這種相當於自適應,會根據伺服器處理請求的速度進行負載均衡分配。處理請求最早結束的,拿到下乙個請求。看上去是不是很好。但是一般都不使用,說是考慮到網路不穩定因素。還有待研究。這種也需要進行session同步。

5.url-hash

這種是根據url進行hash,這樣某些請求永遠打某台伺服器。利於利用伺服器的快取,但是可能由於url的雜湊值分布不均勻,以及業務側重造成某些伺服器壓力大,某些負荷低。這種也需要進行session同步。

nginx如何實現負載均衡

nginx是乙個http伺服器。是乙個使用c語言開發的高效能的http 伺服器 反向 伺服器及電子郵件 imap pop3 伺服器。nginx能夠支撐5萬併發鏈結,並且cpu 記憶體等資源消耗卻非常低,執行非常穩定。反向 reverseproxy 方式是指以 伺服器來接受internet上的連線請求...

MySQL如何實現負載均衡功能

前言 mysql是乙個高速度 高效能 多執行緒 開放源 建立在客戶 伺服器 client server 結構上的關係型資料庫管理系 rdbms 它始於1979年,最初是michaelwidenius為瑞典tcx公司建立的unireg資料庫系統,當時的unir程式設計客棧eg沒有sql structu...

njx如何實現負載均衡 使用Nginx實現負載均衡

一 實現負載均衡 在上面的介紹中只實現了nginx的 一台wen伺服器,在現實的開發中不可能乙個nginx伺服器 乙個web伺服器的情況,而是 多台的web伺服器。伺服器資訊 no 主機名稱 ip位址 描述 以上結果顯示兩台web服務可以正常訪問,下面使用nginx 兩台伺服器 server 192...