淺談軟件架構(二) linux
cnyinlinux
nginx
以前發佈過的博文,已經對C/S和B/S做了討論,本文將討論的是集羣—Cluster。 算法
1. C/S 服務器
2. B/S 網絡
3. Cluster (HA) 架構
4. Cloud 負載均衡
5. Distributed 分佈式
6. APNS-like 性能
7. P2P 動畫
集羣的技術是近年來計算機應用大規模普及,以及性能要求逐漸提升的形勢下提出來的。簡而言之,集羣就是一批獨立計算機聯合運做處理某一高要求任務的技術。其創建在網絡互連的基礎上,核心是節點間任務分配——調度算法。
集羣有幾個顯著特色:
A.提升性能
B.下降成本
C.高擴展性
D.高可靠性
集羣與分佈式的功能仍是有區別的,關於分佈式架構在別文討論。
從應用場景和特性分爲如下幾種,本文將分別介紹各自特色。
1)雙機熱備(高可用HA)
2)科學集羣
3)負載均衡
一,雙機熱備,也被叫作高可用集羣(HA)。這種方式也稱爲集羣。它指的是具有一樣功能且數據共享的多臺機器之間構成相互備份的物理結構,每一時刻對外提供業務的機器只有1臺,其餘多臺構成它的備份,若業務機出現故障,其餘備份機立馬接管任務,對外而言絲毫感覺不到業務主機的故障。這樣維修人員能夠立馬修復故障機,修好後成爲新的備份機。這樣就構成了相互備份的小集團,極大提升了實時業務的可靠性。
這種結構要求各機器的業務數據是共享的,保證每一臺備份機接管任務後可以延續以前的業務,保證數據的一致性。一般備份集團的機器數量爲2臺,因此稱之爲雙機熱備。其中的「熱」字指的是在線切換,也就是說業務不停機,作到無縫切替。其中如何作到故障後當即切換呢?那就是心跳偵測技術。在熱備的機器之間構建的有心跳線,實時偵測對方的狀態,也稱爲死活監視。備份機一旦發現對方心跳中止,當即將本身切到激活模式提供服務。固然也存在主動切換,好比要升級軟件時,無需重啓,先將備份機更新,而後切換狀態,而後在更新曾經的業務機,這樣就實現了業務不間斷升級。其中對外提供業務的機器咱們成爲active,另外一臺處於備份的成爲stand-by。從下圖中能夠看到HA的工做原理。
心跳線能夠有網線構成,相似於TCP鏈接健康監測。也能夠由硬件層面單獨設計接口,這樣效率會更高,通常高可用集羣服務器都採用專用心跳線的方式。
負載死活監視和角色切換模塊通常也集成在系統層面,也就是由廠商直接提供套件。
其原理就是個網絡程序,實時維護與對方的心跳感應。須要切換時直接通知應用程序實現角色切換(應用程序設計時也兼顧了兩種角色)。
二,科學集羣。它是一種並行計算拓撲,爲提升複雜算法的執行速率,將計算任務拆分爲多個任務,分佈在不一樣機器上運算,而後整合各部分運算結構,構成總體運算任務。
以下圖,數臺圖形工做站儀器完成動畫效果渲染任務,構成了一個運算集羣網絡。
三,負載均衡集羣。隨着互聯網逐漸統治生活的各個領域,用戶量大幅攀升,對互聯網服務的速度和質量提出了新的要求。好比搜索引擎,電商等門戶網站,天天都有大量用戶訪問。在這個快節奏生活的時代,人們的耐性每每不高,若是用戶在訪問電商網站時遲遲刷新不了請求頁面,用戶將失去購買慾望,對於商家而言,大量用戶流失必然是不可接受的結果。這就對電商平臺提出了很高的要求,使其可以快速響應用戶請求。負載均衡技術就是在這樣的前提下產生的。
負載均衡集羣,現在已經被普遍應用到各門戶網站。從其名字可知,它就是一種將負載均勻分發到不一樣業務主機的一種技術。拿搜索引擎來講,好比某搜索引擎「易搜」,當你在想易搜主頁請求某搜索任務時,只須要訪問它的主頁,www.esou.com,輸入你的搜索請求就是了。全球不可勝數的用戶請求都發給了esou的主機,它真的可以承擔起那麼多的搜索任務嗎?答案是不能。
它又如何能作到響應那麼多用戶的請求呢?後臺用到了集羣技術。咱們對照着下圖來作說明。你們在訪問esou主機的時候,請求數據最早到達的是均衡器,它也是一臺計算機。收到請求後它將請求發送給其中一臺服務器,該服務器完成後將結果送回。用戶與服務器之間多了一個主持任務的服務器,每次任務由它分配。這樣就增強了處理任務的靈活性。當想要增長主機時,只需將主機接入服務網絡,向均衡器註冊就完成了。如今問題來了,均衡器又以什麼標準決定每次任務給誰呢?這就是負載均衡的調度算法該作的事情。它時刻關注着每臺服務器的負載,每次有任務時在負載較輕的服務器隊列中選中一臺。這樣就保證了多臺服務器都處在負載均衡的狀態提供服務,最大限度地保證服務最優進行。
本文目的是向讀者展現集羣技術的基礎概念。關於深層次的集羣實現和控制,請讀者查閱相關資料。好比紅帽的集羣套件,IBM的HA技術等等,都支持高可用集羣。其官網也都提供大量資料。http服務器的新秀——nginx,也提供http訪問的負載均衡。關於nginx的資料更是滿天飛。本文不做詳細討論了。
本文結束,敬請關注後續其餘博文。