集羣基礎和分類

什麼是服務集羣

將多臺的服務器設備集合在一起,當客戶端發起請求時,利用負載均衡器通過調度算法,將請求分發給後端合適的服務器,實現橫向擴展和負載均衡

爲什麼要集羣

當用戶請求增多,服務規模增大,設備無法滿足需求時,通過升級硬件設備(向上擴展scale on),雖然可以解決一時之需,但擴展性有限制,資金代價高昂,卻不是很好的做法,通過增加服務器做成服務集羣(向外擴展,scale out),很好解決問題,也增強了擴展性


負載均衡集羣,看起來負載均衡集羣原理是很簡單的,但在現實中的實現卻有很多的技術點,例如

1:數據存放在不同的服務器節點,數據如何同步,怎樣從用戶的角度看起來像在訪問同一臺服務器

根據用戶數據的不同,獨立出共享的數據庫服務器(如mysqll)和共享存儲設備(如NFS),用戶基本數據存儲在mysql服務器中,用戶的其他存儲類型的數據(如用戶上傳的圖片,視頻等)存儲在NFS服務器中,並將文件鏈接保存在mysql中

2:當網站頁面腳本更新時,集羣中的應用程序服務節點需要進行同步,可利用如:sersync server

3:數據庫需要備份,並且多臺數據庫服務器間需要進行數據庫的同步:mysqldump

4:像網易,搜狐等這類有衆多服務類型門戶網站,集羣維護內容過於複雜和龐大,需要進行功能切分,每個服務對應一個集羣,而不是集中在一個集羣上解決問題


HA:High Availability (高可用集羣)

在負載均衡的基礎上,考慮服務質量和服務的可用性,簡單地說,就是當集羣某個部分出現故障時,通過一些機制快速的恢復服務,最好讓用戶完全察覺不到,做到一種無縫的效果。一般有兩種情況,通過負載前端負載均衡調度器實現

1:通過部署多臺服務器,設備間通過心跳線,固定時間通過事務傳輸層互相發送事務信息,若有設備故障,其他設備在限定時間內沒有收到事務信息,則開始進行法定票數的投票,根據票數,對票數少的一方進行策略(重啓,關閉等)

2:後端節點故障,前端負載均衡器,固定時間對後端服務器進行 health check(健康檢查),經過一定次數檢查後,若有問題不在線了,則不再分配請求到故障節點,若後續解除了故障,再對其分配請求

其實高可用集羣遠遠不止這些內容,這裏只是一個簡單的說明


HP:High Performance:(高性能集羣)

主要用於大數據分析和計算:當擁有高性能計算設備時,計算能力不再是問題,想象一下從存儲設備加載非常龐大的數據到計算設備的內存當中,I/O將會是最大的瓶頸

高性能集羣就是在這種情況下產生的,例如並行處理集羣,利用分佈式文件系統,進行分佈式存儲,即後端節點既是計算節點,又是存儲節點,當客戶端進行數據存儲時,通過調度器選擇適當的節點進行存儲,當請求處理結果的時候,在節點自身進行計算並將各個節點的結果整合後再返回給客戶端


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章