常見的web負載均衡方法總結

2022-09-23 01:22:04 字數 2757 閱讀 8706

web負載均衡的方法有很多,下面介紹幾種常見的負載均衡方法。

大多域名註冊商都支援對同一主機名新增多條a記錄,這就是dns輪詢,dns伺服器將解析騎牛按照a記錄的順序,隨機分配到不同的ip上,這樣就完成了簡單的負載均衡。

dns輪詢的成本非常低,在一些不重要的服務上,經常被使用。

下圖為enom的域名web管理介面,這裡我們為api.bz域名新增一個二級域名ntp.api.bz(主機名為ntp),併為該域名新增多條a記錄,讓其dns輪詢7個ip,用7臺伺服器來做負載均衡。

新增完成後,我們用linux下的dig命令檢視ntp.api.bz域名的域名解析情況

[[email protected] ~]# dig ntp.api.bz

; <<>> dig 9.9.4-redhat-9.9.4-61.el7 <<>>test1.testa.com

;; global options: +cmd

;; got answer:

;; ->>header<

;; flags: qr rd ra; query:

1, answer: 1, authority: 2, additional: 19

;; opt pseudosection:

; edns: version:

0, flags:; udp: 4096

;; question section:

;test1.testa.com. in a

;; answer section:

test1.testa.com.

600 in a 201.17.07.223

;; authority section:

testa.com.

172761

in ns vip2.testdns.com.

testa.com.

172761

in ns vip1.testdns.com.

;; additional section:

vip1.testdns.com.

475 in a 101.19.44.101

vip1.testdns.com.

475 in a 110.215.1.1

vip1.testdns.com.

475 in a 110.215.28.103

vip1.testdns.com.

475 in a 110.215.208.11

vip1.testdns.com.

475 in a 13.1.102.10

vip1.testdns.com.

475 in a 42.66.22.111

vip1.testdns.com.

475 in a 101.15.10.103

;; query

time: 15

msec

;; server:

192.168.0.88#13(192.168.0.2

);; when: mon jul

0621:14:12 cst 2015

;; msg size rcvd:

391

雖然dns輪詢的成本非常低,但是,dns負載均衡存在兩個明顯的缺點

假設一個域名dns輪詢多臺伺服器,如果其中的一臺伺服器發生故障,那麼所有的訪問該伺服器的請求將不會有所迴應,這是任何人都不願意看到的。即使從dns中去掉該伺服器的ip,但在internet上,各地區電信、網通等寬頻接入商將眾多的dns存放在快取中,以節省訪問時間,dns記錄全部生效需要幾個小時,甚至更久。所以,儘管dns輪流在一定程度上解決了負載均衡問題,但是卻存在可靠性不高的缺點。

dns負載均衡採用的是最簡單的輪詢負載演算法,不能區分伺服器的差異,不能反映伺服器的當前執行狀態,不能做到為效能較好的伺服器多分配請求,甚至會出現客戶請求集中在某一臺伺服器上的情況dns伺服器是按照一定的層次結構組織的,本地dns伺服器會緩衝已解析的域名到ip地址的對映,這會導致使用該dns伺服器的使用者在一段時間內訪問的是同一臺web伺服器,導致web伺服器間的負載不均衡。

此外,使用者本地計算機也會快取已解析的域名到ip地址的對映。當多個使用者計算機都快取了某域名到ip地址的對映時,而這些使用者繼續訪問該域名下的網頁,這是也會導致不同web伺服器件的負載分配不均衡。

負載不均衡可能導致的後果有:某幾臺伺服器負荷很低,而另幾臺伺服器負荷很高、處理緩慢;配置高的伺服器分配到的請求少,而配置覅的伺服器分配的請求多。

因此,dns輪詢方式僅適用於一些可靠性要求不高的伺服器叢集,例如:伺服器群、純靜態網頁伺服器叢集等。

常見的四/七層負載均衡裝置:

代表有lvs(linux virtual server).

大多基於http反向**,代表作有nginx

WEB系統效能問題的分析定位方法

之前寫過一篇效能測試新手誤區 五 這是效能問題麼,主要講一個有效的效能問題應該是什麼樣的,其中提到了定位的問題。但是那篇文章只說了what,...

web開發中會話跟蹤的方法

會話是指一個終端使用者 伺服器 與互動系統 客戶端 進行通訊的過程。 對同一個使用者對伺服器的連續的請求和接受響應的監視。 將使用者與同一使用者發出的不同請求之間關聯,為了資料共享 瀏覽器與伺服器之間的通訊是通過http協議進行通訊的,而http協議是 無狀態 的協議,它不能儲存客戶的資訊,即一次響應完成之...

Silverlight2 跨域呼叫Web服務的方法

呼叫web服務是一種常見的功能,在silverlight2中也是可以呼叫別的 的web服務的。由於跨域訪問存在安全漏洞,所以,預設情況下,s...