集群、負載均衡集群、高可用集群簡介,LVS工作結構、工作模式、調度算法和haproxy/nginx模式拓撲介紹

一.集群的定義

1.定義

2.分類

(1)負載均衡集群(LBC/LB)

(2)高可用集群(HAC)

二.使用集群的意義

1.高性價比和性能比

2.高可用性

3.可伸縮性強

4.持久和透明性高

三.常見的兩種集群模式拓撲

1.LVS(-DR)集群模式

(1)工作架構

(2)LVS下的相關術語

(3)LVS的工作模式

VS/NAT:

VS/DR:

VS/TUN:

(4) LVS調度器算法

固定調度:

動態調度:

?2.haproxy/nginx模式

?四.常用集群軟硬件列舉

1.企業常用集群軟件

2.企業常用集群硬件


?

一.集群的定義

1.定義

是一組協同工作的服務器,在外部訪問者看來是一個整體。集群是一種并行或分布式系統,包括一個互連的整體計算機集合作為一種單一、同意的計算資源使用,使用集群管理服務,可以獲得更高的性能、可靠性和靈活性,實現資源的高度可用。集群又可以分為負載均衡集群、高可用性集群、高性能計算機群、網絡計算等類別。

2.分類

(1)負載均衡集群(LBC/LB)

也可以稱服務器群,一般通過一個或多個前端負載均衡器將數據請求轉發到后端部分服務器上,使客戶訪問請求壓力在各服務器之間盡可能分攤,包括程序處理負載和網絡流量負載,也可以實現訪問請求在各節點間動態分配,靈活負載。

(2)高可用集群(HAC)

高可用集群下的服務器運行速度和響應速度較快,一般是已配置好的集群服務中有任意節點失效時,將其分配到的壓力自動轉移到其他正常節點上,一般情況下這個節點的失效不會影響整個集群的運行,如果主節點失效,次節點完全可以接替其身份和資源進一步正常處理主節點下的任務。

二.使用集群的意義

1.高性價比和性能比

以pc服務器或RISC服務器組成集群可以大規模降低部署成本,分開管理,在性能上也有很大的優勢

2.高可用性

在硬件和軟件上都有冗余,可以進一步檢測到軟硬件的故障,進而解決或屏蔽故障有正常運轉的節點繼續提供服務

3.可伸縮性強

集群系統的節點數可以到幾千甚至幾萬個,在其上甚至可以簡易地去開發應用程序

4.持久和透明性高

服務器對于客戶端來說,部分服務器的加入和退出不會中斷對用戶的服務,對用戶來說相對透明

三.常見的兩種集群模式拓撲

1.LVS(-DR)集群模式

(1)工作架構

如圖示,多臺提供服務的服務器(組)和數據備份(共享存儲)服務器位于局域網內,提供服務的服務器又連接到廣域網,用戶通過互聯網/加速器能夠進行訪問。LVS模式下用戶發出數據請求,LVS負載均衡服務器組收到后按自身算法1將請求通過廣域網交給apache/nginx服務器組,apache/nginx服務器組處理好后直接將結果返還給用戶,無需經過負載均衡組。

LVS-DR負載均衡服務器組所在層又可稱為load balancer(包含director server),apache/nginx服務器群組所在層又可稱為server array(包含real server——集群節點),后方的數據共享存儲層可稱為shared storage。

23f7cac734324b6d859ad077804a8da6.png

load balancer:位于整個集群系統最前端,由一臺或多臺負載調度器組成,LVS是安裝在director server上的,其中包含有LVS功能設定的路由表,通過路由表把數據請求抓發給server array,還可以在direct server上安裝對real server的監控板塊,檢測健康狀態。

server array:由一組真實的應用服務器組成,每個real server之間通過lan或wan相連接,在真實場景中,director server可以充當real server。

shared storage:為所有的real server提供數據存儲和空間共享服務,保持內容一致性,一般是由磁盤陣列設備、nfs文件共享系統、gfs文件系統或ocfs2文件系統等等組成

(2)LVS下的相關術語

虛擬IP地址——VIP,director server用來向客戶端計算機提供服務的IP地址

真實IP地址——RIP,在集群節點上使用的IP地址

director server的IP地址——DIP,director用于連接外網的IP地址

客戶端主機IP地址——CIP,客戶端請求集群服務器的IP地址,用作發送給集群的數據請求的源IP地址

(3)LVS的工作模式

?LVS的IP負載均衡通過IPVS模塊來實現的,IPVS是LVS集群系統的核心軟件。主要作用是:安
裝在Director Server上,同時在Director Server上虛擬出一個IP地址,客戶端訪問時也要通過這個IP地址。這個虛擬IP一般稱為LVS的VIP,訪問的請求首先經過VIP到達負載調度器,然后由負載調度器從Real Server列表中選取一個服務節點響應用戶的請求。當用戶的請求到達負載調度器后,IPVS重點關注調度器如何將請求發送到提供服務的Real Server節點,Real Server節點如何返回數據給用戶,IPVS實現負載均衡機制有DR、NAT、TUN三種。

VS/NAT:

網絡地址翻譯技術實現虛擬服務器,當用戶請求到達調度器時,調度器將請求報文的目標地址(虛擬IP地址)改寫成選定的Real Server地址,同時報文的目標端口也改成選定的Real Server的相應端口,最后將報文請求發送到選定的Real Server。在服務器端得到數據后,Real Server要原路經過負載調度器將報文的源地址和源端口改成虛擬IP地址和相應端口,然后把數據發送給用戶。

VS/DR:

直接路由技術實現虛擬服務器,應用最多,要求Director Server與Real Server都有一塊網卡連在同一物理網段上。它的連接調度和管理與VS/NAT相同,但VS/DR通過改寫請求報文的MAC地址,將請求發送到Real Server,而Real Server將響應直接返回給客戶,節省了開銷,性能最好。

VS/TUN:

IP隧道技術實現虛擬服務器,應用較少不要求Director Server與Real Server都有一塊網卡連在同一物理網段上。它的連接調度和管理與VS/NAT方式相同,但調度器采用IP隧道技術將用戶請求轉發到某個Real Server,而這個Real Server將直接響應用戶的請求,不再經過前端調度器,調度器只處理用戶的報文請求,吞吐量較高。

(4) LVS調度器算法

調度器在收到入站請求時需要立即做出決定將請求分配給哪個服務器(節點)

固定調度:

rr:常用調度算法之一,輪詢調度,在real server中均攤請求,此算法適用于處理性能相差不大的情況。

wrr:常用調度算法之一,加權輪循調度,依據不同real server的權重值分配任務,權值較高的real

server將優先分配,分配到的連接數也比權值較低的real server多,如果權值相同那么real serve

得到相同數目的連接。

dh:目的哈希調度,以目的地址為關鍵字查找一個靜態hash表來分配real server。

sh:源地址哈希調度,以源地址為關鍵字查找一個靜態hash表來分配real server。

動態調度:

lc:常用調度算法之一,最小連接數調度,會把新的連接請求發送到IPVS表中連接數最小的real

server。

wlc:常用調度算法之一,加權最小連接數調度,依次選取“TCP連接數/權重值”為最小的real server

作為下一個分配節點。

lblc:基于地址的最小連接數調度,如果這一臺設備仍然可以處理請求就將來自同一目的地址的請

求分配給同一臺real server,否則分配給連接數最小的real server,作為下次分配請求的首選real

server。

lblcr:基于地址帶重復最小連接數調度,目的地址會對應一個real server子集,為請求分配子集中

連接數最小real server,如果服務器中所有子集均已滿載,則從集群中選擇一個連接數較小服務

器,將它加入到這個子集并分配連接,一定時間內不干預就會將子集中負載最大的節點從子集中移

除。

SED:最短期望的延遲算法,基于wlc算法,將連接交給wlc結果最小的real server。假如A、B、C

分別權重為1、2、3,連接數分別是1、2、3,使用sed算法后運算式如下:A(1+1)/1、B(1+2)/2、

C(1+3)/3,就會交給C服務器。

NQ:最少隊列調度,如果有臺real server的連接數=0就直接分配過去,此時不想需要進行SED運

算,如果不處于空閑狀態需要進行SED的運算。

?2.haproxy/nginx模式

如圖示,大體與LVS差不多,但是haproxy/nginx模式下apache/nginx/圖片服務器處理好的結果需要經過請求的原路返回給用戶?

dcf3586bcf574698b270e946213b3415.png

?四.常用集群軟硬件列舉

1.企業常用集群軟件

LVS,keepalived,haproxy,nginx,apache,heartbeat

2.企業常用集群硬件

F5,Netscaler,Radware

?

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/43460.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/43460.shtml
英文地址,請注明出處:http://en.pswp.cn/news/43460.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

運維監控學習筆記9

2、畫出拓撲圖的小案例: 3、在連接的線上顯示網絡流量,使用了一個簡單的公式: {nginx-server:net.if.out[ens33].last(0)} 4、在screens中顯示nginx的狀態頁面: 5、zabbix報警: 發送郵件的選項。Email可以使用&#xf…

trees和woods使用有什么區別

“Trees” 和 “woods” 都指的是樹木,但它們在語境和用法上有一些區別: 數量和單個實體:“Trees” 是一個通用的名詞,用來指代多個樹木。它沒有限定數量,可以表示任意多的樹木。 “Woods” 則更常用于指一片有密集樹木…

【Nginx18】Nginx學習:WebDav文件存儲與圖片媒體處理模塊

Nginx學習:WebDav文件存儲與圖片媒體處理模塊 今天的內容怎么說呢?有兩個感覺非常有意思,另外一些就差點意思。有意思的是,咱們可以直接用 Nginx 的 Webdav 功能搭建一個網盤,另外也可以實現動態的圖片處理。這兩個功能…

安裝jenkins-cli

1、要在 Linux 操作系統上安裝 jcli curl -L https://github.com/jenkins-zh/jenkins-cli/releases/latest/download/jcli-linux-amd64.tar.gz|tar xzv sudo mv jcli /usr/local/bin/ 在用戶根目錄下,增加 jcli 的配置文件: jcli config gen -ifalse …

nginx 配置反向代理的邏輯原則案例(值得一看)

一 實操步驟 1.1 架構圖 1.2 配置原則 匹配準則: 當proxy_pass代理地址端口后有目錄(包括 / 和/xxx),相當于是絕對根路徑,則 nginx 不會把 location 中匹配的路徑部分代理走; 當proxy_pass代理地址端口后無任何內容,可以理解為相對路徑…

【Linux命令詳解 | gzip命令】 gzip命令用于壓縮文件,可以顯著減小文件大小

文章標題 簡介一,參數列表二,使用介紹1. 基本壓縮和解壓2. 壓縮目錄3. 查看壓縮文件內容4. 測試壓縮文件的完整性5. 強制壓縮6. 壓縮級別7. 與其他命令結合使用8. 壓縮多個文件9. 自動刪除原文件 總結 簡介 在Linux中,gzip命令是一款強大的文…

sklearn-決策樹

目錄 決策樹算法關鍵 特征維度&判別條件 決策樹算法:選擇決策條件 純度的概念

mac 關于獲取手機信息 終端指令

iOS真機命令(自動化測試) 獲取設備的的UDID idevice_id --list # 顯示當前所連接設備的 udid instruments -s devices # 列出所有設備,包括真機、模擬器、mac ideviceinfo 可以在返回的數據中找到 udid idevice_id -l 蘋果手機 safari打開網…

神經網絡基礎-神經網絡補充概念-62-池化層

概念 池化層(Pooling Layer)是深度學習神經網絡中常用的一種層級結構,用于減小輸入數據的空間尺寸,從而降低模型的計算復雜度,減少過擬合,并且在一定程度上提取輸入數據的重要特征。池化層通常緊跟在卷積層…

MyBatis XML映射處理CLOB和BLOB類型

Mybatis的MapperXML映射文件應該處理數據庫字段類型為CLOB和BLOB類型的數據呢?首先我們先看下CLOB和BLOB這兩種數據類型的介紹。 介紹 使用Mybatis時涉及到兩種特殊類型的處理,分別是Blob(Binary Large Object)和Clob&#xff0…

python+django+mysql項目實踐四(信息修改+用戶登陸)

python項目實踐 環境說明: Pycharm 開發環境 Django 前端 MySQL 數據庫 Navicat 數據庫管理 用戶信息修改 修改用戶信息需要顯示原內容,進行修改 通過url傳遞編號 urls views 修改內容需要用數據庫的更新,用update進行更新,用filter進行選擇 輸入參數多nid,傳遞要修…

Flutter實現Service + UI 全面跨平臺

作者:Karl_wei 前言: Flutter作為跨平臺的UI框架,其可行性已經被市場所認可。UI跨端后,我們自然會希望一些運行在終端的小服務也能跨端,特別是當這個小服務還涉及到一些 UI 的展示。 我們希望Flutter能承擔這個角色&…

去除UI切圖邊緣上多余的線條

最近接到UI切圖,放進項目,顯示邊緣有多余線條,影響UI美觀。開始以為切圖沒切好,實則不是。如圖: ->解決: 將該圖片資源WrapMode改為Clamp

2021年03月 C/C++(三級)真題解析#中國電子學會#全國青少年軟件編程等級考試

第1題&#xff1a;找和為K的兩個元素 在一個長度為n(n < 1000)的整數序列中&#xff0c;判斷是否存在某兩個元素之和為k。 時間限制&#xff1a;1000 內存限制&#xff1a;65536 輸入 第一行輸入序列的長度n和k&#xff0c;用空格分開。 第二行輸入序列中的n個整數&#xff…

Rancher-RKE-install 部署k8s集群

一、為什么用Rancher-RKE-install 1.CNCF認證的k8s安裝程序。 2.有中文文檔。 二、安裝步驟 1.下載Rancher-Rke的二進制包-下面是項目的地址 GitHub - rancher/rke: Rancher Kubernetes Engine (RKE), an extremely simple, lightning fast Kubernetes distrib…

探索樹算法:C語言實現二叉樹與平衡樹

探索樹算法&#xff1a;C語言實現二叉樹與平衡樹 樹是計算機科學中一個重要且廣泛應用的數據結構&#xff0c;它在許多領域都有著重要作用。本篇博客將深入介紹兩種常見的樹算法&#xff1a;二叉樹遍歷和平衡二叉樹&#xff08;AVL樹&#xff09;&#xff0c;并提供在C語言中的…

Python學習筆記_基礎篇(五)_數據類型之字典

一.基本數據類型 整數&#xff1a;int 字符串&#xff1a;str(注&#xff1a;\t等于一個tab鍵) 布爾值&#xff1a; bool 列表&#xff1a;list 列表用[] 元祖&#xff1a;tuple 元祖用&#xff08;&#xff09; 字典&#xff1a;dict 注&#xff1a;所有的數據類型都存在想對…

Python Opencv實踐 - 圖像平移

import numpy as np import matplotlib.pyplot as pltimg cv.imread("../SampleImages/pomeranian.png", cv.IMREAD_COLOR)#圖像平移 #cv.warpAffine(src, M, dsize[, dst[, flags[, borderMode[, borderValue]]]]) # M是仿射變換矩陣&#xff0c;對于平移來說M是一…

《Zookeeper》源碼分析(十五)之 選舉算法

FastLeaderElection FastLeaderElection實現了接口Election&#xff0c;選舉方法為lookForLeader()&#xff0c;選舉算法的核心邏輯也在該方法中。 數據結構 構造函數 start() 啟動選舉通信網絡 lookForLeader() 選舉核心算法 FastLeaderElection.logicalclock屬性用于標…

從零開發短視頻電商 自動化測試WebUI端到端測試-Playwright

文章目錄 Playwright是什么Playwright入門示例添加Maven依賴示例代碼啟動驗證 功能自動等待內置Web斷言可視化UI模式減慢操作截圖錄屏腳本錄制 高級識別驗證碼 Playwright是什么 https://playwright.dev/ https://playwright.dev/java/ Playwright為現代 Web 應用程序提供可…