第 3 章 Systems architecture(系统架构)
3.1.?集群(Cluster)
集群有很多實現(xiàn)方法,分為硬件和軟件,集群可以在不同網(wǎng)絡(luò)層面上實現(xiàn)
實現(xiàn)IP輪循(Bind DNS)
硬件四層交換(硬件負載均衡設(shè)備 F5 BIG IP)
軟件四層交換(linux virtual server)
應(yīng)用層上實現(xiàn)(tomcat)
越是低層性能越好,越是上層功能更強
集群的分類
高可用性集群
負載均衡集群
超級計算集群
網(wǎng)站一般用到兩種集群分別是高可用性集群和負載均衡集群
3.1.1.?負載均衡
3.1.1.1.?DNS負載均衡
這是早期出現(xiàn)的負載均衡技術(shù),直到現(xiàn)在,很多網(wǎng)站仍然使用DNS負載均衡。
你可通過ping命令觀看它是如何工作的,例如你可反復(fù)ping個網(wǎng)域名。
C:\>ping www.163.comPinging www.cache.split.netease.com [220.181.28.52] with 32 bytes of data:Reply from 220.181.28.52: bytes=32 time=226ms TTL=53 Reply from 220.181.28.52: bytes=32 time=225ms TTL=53 Reply from 220.181.28.52: bytes=32 time=226ms TTL=53 Reply from 220.181.28.52: bytes=32 time=226ms TTL=53Ping statistics for 220.181.28.52:Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds:Minimum = 225ms, Maximum = 226ms, Average = 225msC:\>ping www.163.comPinging www.cache.split.netease.com [220.181.28.53] with 32 bytes of data:Reply from 220.181.28.53: bytes=32 time=52ms TTL=52 Reply from 220.181.28.53: bytes=32 time=53ms TTL=52 Reply from 220.181.28.53: bytes=32 time=52ms TTL=52 Reply from 220.181.28.53: bytes=32 time=52ms TTL=52Ping statistics for 220.181.28.53:Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds:Minimum = 52ms, Maximum = 53ms, Average = 52msC:\>ping www.163.comPinging www.cache.split.netease.com [220.181.28.50] with 32 bytes of data:Reply from 220.181.28.50: bytes=32 time=51ms TTL=53 Reply from 220.181.28.50: bytes=32 time=52ms TTL=53 Reply from 220.181.28.50: bytes=32 time=52ms TTL=53 Reply from 220.181.28.50: bytes=32 time=51ms TTL=53Ping statistics for 220.181.28.50:Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds:Minimum = 51ms, Maximum = 52ms, Average = 51msC:\>DNS負載均衡主要優(yōu)點
技術(shù)簡單,容易實現(xiàn),靈活,方便,成本低
Web服務(wù)器可以位于互聯(lián)網(wǎng)的任意位置上,無地理限制。
DNS的主從結(jié)構(gòu)非常穩(wěn)定
可以有效的分散DDOS攻擊。
你甚至可以在DNS服務(wù)商那里實現(xiàn),自己不需要添加設(shè)備。而且沒有帶寬開銷。
DNS負載均衡主要缺點
DNS負載均衡采用的是簡單的輪循負載算法,不能夠按照服務(wù)器節(jié)點的處理能力分配負載。
不支持故障轉(zhuǎn)移(failover)和自動恢復(fù)failback ,如果某臺服務(wù)器拓機,DNS仍會將用戶解析到這臺故障服務(wù)器上,導(dǎo)致不能響應(yīng)客戶端。
如果添加節(jié)點或撤出節(jié)點,不能即時更新到省市級DNS,可導(dǎo)致部分地區(qū)不能訪問。
占用大量靜態(tài)IP。
3.1.1.2.?軟件四層交換負載均衡
軟件四層交換負載均衡為我們解決了幾個問題
能夠按照服務(wù)器節(jié)點的處理能力分配負載。
支持故障轉(zhuǎn)移(failover)和自動恢復(fù)failback ,如果某節(jié)點拓機,調(diào)度器自動將它剔除,不響應(yīng)客戶端訪問,當(dāng)節(jié)點故障排除調(diào)度器立即恢復(fù)節(jié)點。
可以隨時添加節(jié)點或撤出節(jié)點,即時生效,方便網(wǎng)站擴容。
軟件四層交換負載均衡優(yōu)點
僅僅需要一個靜態(tài)IP。
節(jié)點位于私有網(wǎng)絡(luò)上與WAN隔離,用戶面對的只是調(diào)度器。
可以隨時添加節(jié)點或撤出節(jié)點。
通過端口可以組建多個集群。
3.1.1.3.?應(yīng)用層負載均衡
Tomcat balancer
mod_proxy_balancer.so ,tomcat mod_jk.so
MySQL proxy / MySQL-LB
3.1.2.?高可用性集群
俗稱:雙機熱備份
關(guān)鍵詞:心跳線
兩部服務(wù)器,或多部服務(wù)器,形成一個集群,當(dāng)主服務(wù)器崩潰是,立即切換到其它節(jié)點上。
兩部服務(wù)器要做到,內(nèi)容實時同步,保持數(shù)據(jù)一直。
一般用 heartbeat + DRBD 實現(xiàn)。heartbeat負責(zé)切換服務(wù)器,DRBD用于同步數(shù)據(jù)。
3.1.3.?負載均衡設(shè)備
負載均衡成熟產(chǎn)品
F5 Big IP
Array
這些設(shè)備可提供3,4,7層負載均衡HA,硬件已經(jīng)壓縮,HTTP頭改寫,URL改寫...
其中3層交換部分多采用硬件實現(xiàn)。
3.1.4.?會話保持
3.1.5.?健康狀態(tài)檢查
原文出處:Netkiller 系列 手札
本文作者:陳景峯
轉(zhuǎn)載請與作者聯(lián)系,同時請務(wù)必標(biāo)明文章原始出處和作者信息及本聲明。
總結(jié)
以上是生活随笔為你收集整理的第 3 章 Systems architecture(系统架构)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 33.Node.js 文件系统fs
- 下一篇: iOS开发实战小知识点(五)——获取JS