什么是負(fù)載均衡高可用
發(fā)布時間:
2022-03-28
什么是負(fù)載均衡高可用?在解釋這個專業(yè)術(shù)語之前,我們需要先弄明白一個小問題,為什么需要負(fù)載均衡(Load Balancing)?
這里以一個示例來說明,假如我們有一個金融資訊類的網(wǎng)站,只允許100個用戶同時在線訪問。網(wǎng)站上線初期,由于知名度較小,加上沒有宣傳,只有幾個用戶經(jīng)常上線;后期知名度上去了,宣傳也上去了,百度和谷歌也收錄了我們的網(wǎng)站,這時,同時在線的用戶數(shù)量直線上升,甚至?xí)_(dá)到上千人;于是,網(wǎng)站變得異常繁忙,經(jīng)常會反應(yīng)不過來,這個時候用戶勢必會埋怨,為了不影響客戶對我們的信心,一定要想辦法解決這個問題。
試想,如果有幾臺或幾十臺相同配置的機(jī)器,前端放一個轉(zhuǎn)發(fā)器,輪流轉(zhuǎn)發(fā)客戶對網(wǎng)站的請求,每臺機(jī)器都將用戶數(shù)控制在100之內(nèi),那么網(wǎng)站的反應(yīng)速度就會大大增快;即使其中的某臺服務(wù)器因?yàn)橛布收襄礄C(jī)了,也不會影響用戶的訪問。其中,這個神奇的轉(zhuǎn)發(fā)器就是負(fù)載均衡器,英文名叫Director。
那么什么是負(fù)載均衡呢?負(fù)載均衡建立在現(xiàn)有的網(wǎng)絡(luò)結(jié)構(gòu)之上,它提供了一種廉價、有效、透明的方法來擴(kuò)展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬,增加了吞吐量,加強(qiáng)了網(wǎng)絡(luò)數(shù)據(jù)處理能力,提高了網(wǎng)絡(luò)的靈活性和可用性?我們通過負(fù)載均衡器,可以實(shí)現(xiàn)N臺廉價的PC服務(wù)器并行處理,使其計算能力達(dá)到小型機(jī)或大型機(jī)的水平,這也是目前負(fù)載均衡如此流行的主要原因。
高可用(High Availability,HA)其實(shí)有兩種不同的含義,從廣義上說,是指整個系統(tǒng)的高可用(High Availability)性;從狹義上說,一般是指主機(jī)的冗余接管,如主機(jī)HA。如無特殊說明,本書中的HA都是指廣義的高可用性。
廣義的高可用性是指能夠保證整個系統(tǒng)不會因?yàn)槟骋慌_主機(jī)崩潰或故障損壞而發(fā)生停止服務(wù)的現(xiàn)象;狹義的就是我們前面提到的主機(jī)的冗余接管,下面我們可以從最前端的負(fù)載均衡器談起了。
單臺負(fù)載均衡器位于網(wǎng)站的最前端,它起著對客戶的請求進(jìn)行分流的作用,相當(dāng)于整個網(wǎng)站或系統(tǒng)的入口,如果它不幸崩潰(Crash)了,整個網(wǎng)站也會掛掉,所以這個時候要求有一種方案,能在短時間(這個時間一般要求小于1秒)內(nèi)將崩潰的負(fù)載均衡器接管過去,這就稱為高可用。這個時間非常短,客戶完全不會察覺到其中的一臺機(jī)器已經(jīng)發(fā)生了崩潰的情況。至于負(fù)載均衡器后端的Web集群、數(shù)據(jù)庫集群,因?yàn)橛胸?fù)載均衡器的內(nèi)部機(jī)制,即使是其中的某一臺或兩臺發(fā)生問題,也不會影響整套系統(tǒng)的使用,這種意義上的高可用就是廣義上的。
現(xiàn)在我們俗稱的Linux集群(Cluster),指的就是大范圍內(nèi)的整套系統(tǒng)架構(gòu),相對于負(fù)載均衡器后端的Web集群、Resin集群或MySQL集群來說,它的涵蓋面要廣得多,包括負(fù)載均衡和高可用。這里為了便于區(qū)別,在提到集群時一般會帶上前綴,比方說Web集群,指的就是后端提供相同服務(wù)的Web機(jī)器群;如果是Linux集群,指的就是大范圍的系統(tǒng)集群架構(gòu),希望大家不要混淆。
目前,線上環(huán)境中應(yīng)用得比較多的負(fù)載均衡器硬件有F5 BIG-IP和CitrixNetScaler,軟件有LVS、Nginx及HAProxy,高可用軟件有Heartbeat、Keepalived,成熟的Linux集群架構(gòu)有DNS輪詢、LVS+Keepalived、Nginx/HAProxy+Keepalived及DRBD+Heartbeat,建議大家還可以關(guān)注下AWS的Elastic Load Balancing。
上一篇:
百萬級PV高可用網(wǎng)站架構(gòu)設(shè)計
下一篇:
數(shù)據(jù)庫分區(qū)表是什么