閒談高可用與負載均衡
閒談高可用和負載均衡
高可用叢集和負載均衡叢集想必大家或多或少都聽說過,但是很多人往往把這兩個搞混在一起,不加區分地使用這兩個概念。雖然說很多負載均衡的裝置有著高可用的特性,或者高可用的機器使用著負載均衡的方式分發流量,事實上,高可用和負載均衡是兩個完全不同的概念,兩者關注的地方是不同的,而且很多在很多場景下兩者的需求是衝突的。
那,什麼是高可用和負載均衡呢?兩個概念各自關注的地方又是什麼?
高可用性:顧名思義,儘可能採取措施減少系統服務中斷時間,進而提高業務程式持續對外提供服務的能力。
負載均衡:將高併發的請求資料分發到不同的叢集結點,儘量平衡系統所有資源的壓力,從而提升整個叢集對於請求的處理能力。
以上的內容非常科學地定義了高可用性和負載均衡,但是對於很多人他沒接觸過這兩個概念一時還不好理解怎麼辦,那就用一個我們工作中通俗的例子來跟大家聊下高可用和負載均衡。
工作崗位有產品人員,程式設計師和運維人員之分,一般一個產品人員會帶著一群程式設計師開發一個產品,一個開發人員背後又有著系統運維,網路運維,業務運維,平臺運維的支援。這個時候,產品人員就相當於負載均衡中的分發器,程式設計師相當於負載均衡叢集的結點,產品人員作為分發器將各種收集來的使用者請求轉發給不同的程式設計師,當然分發給不同程式設計師處理的事務可能相同也可能不相同。假如說不考慮產品人員擔心程式設計師的可用性,那一般情況下,一項需求是不會交給兩個人去做的,每個程式設計師做的都是不相同的事務。同樣,每個開發人員也相當一個分發器,一個應用需要上線需要做的事情非常多,包含系統,網路和應用環境以及一些與業務相關的配置,這個時候也是一個非常典型的負載均衡模型,一個開發人員提一個需求單,然後處於不同角色的運維人員然後處理自己相關的事情。當一件比較複雜或者一大堆比較繁瑣的事情需要處理的時候,如果由某個單一的系統來處理,需要的時間以及相應的資源可能比較多,使用負載均衡叢集將不同的請求分發到不同的結點,從而提高整個叢集對於事務的處理能力,負載均衡叢集相對於單個結點有著更高的效能。
那什麼時候我們會考慮高可用性呢?同樣是產品人員和程式設計師,產品人員發現某個程式設計師請假了,那麼他就有可能要求開發團隊的領導給他再安排一個人繼續處理相同的事務,從而保證產品如期開發完成。當叢集中某一個結點無法提供預期的服務的時候就使用另一個結點替換當前結點來進行服務。
再通俗點講就是,
美國的總統和副總統更像高可用叢集,只有等到總統掛了副總統才派得上用場,這叫高可用;像我朝各個正職和副職(比如正校長和副校長,正校長可能姓付,副校長也可能姓鄭)的關係,更像負載均衡的關係,各個正副職往往各司其職,沒有說哪兩個人乾的事情是一模一樣的,或者某個人平時不幹事就等正職那位夥計掛掉然後順利成章就接手正職的職責和權利的。
負載均衡一般不關注叢集中各節點對於請求的處理能力,很多時候會根據節點處理能力的不同而使用不同的分發策略,比如輪詢,最小連線,最快響應等。高可用比較關注叢集中結點處理請求能力的對等性,因為一單主節點出現問題備用節點需要承受主節點所有的請求壓力,一旦處理能力較弱有可能無法正常提供服務,從而失去高可用的作用。
高可用性叢集中的節點一般是一主一備,或者一主多備,通過備份提高整個系統可用性。負載均衡叢集一般是多主,每個節點都會分擔部分流量。
為什麼很多人會把高可用和負載均混淆起來,因為大家一般瞭解的都是某個軟體或者裝置,往往這些裝置會同時應用負載均衡和高可用。比較典型的F5和HAProxy中,F5作為一個負載均衡裝置對後端節點有著健康監測功能,而且當有多個節點的時候是不影響到整個服務的可用性的。假如沒有這個健康監測功能,一個叢集下放1個節點和多個節點在可用性方面是沒有區別的。同時HAProxy作為被大多數人認為的高可用軟體,其實根本就不是什麼高可用叢集軟體,其對於使用者請求有著分發處理的功能,同時有著反向代理功能,事實上Haproxy 是一個負載均衡器(The Reliable, High Performance TCP/HTTP Load Balancer,可靠的高效能TCP/HTTP負載均衡器),真正的高可用是有一個叫keepalived 軟體來實現的。由於資料庫資料要保證資料的一致性,一般都是單寫,所以無法實現資料庫服務的負載均衡,這也是目前碰到的一個難題,當然瞭如果資料庫是隻讀的,還是可以實現負載均衡的。
負載均衡叢集中,更多的關注可擴充套件性和效能,比較關注叢集節點處理能力;高可用叢集,更多的關注可用性,比較關注自動偵測,自動切換,自動恢復。
在高可用性叢集內,每種服務的使用者資料只有一份,在任一時刻只有一個節點能讀寫這份資料。
在負載均衡叢集內,對於資料一般不會只有一份,往往基本上都是有差異的。
高可用性叢集對一種服務而言不具有負載均衡功能,它可以提高整個系統的可靠性,但不能增加系統的負載能力。負載均衡叢集的各節點間通常沒有共用的儲存介質,使用者資料被複製成多份,存放於每一個提供該項服務的節點上。
對於同一種服務,是不能同時獲得高可用性與負載均衡能力的,大家看看資料庫服務就很清楚了。
相關推薦
閒談高可用與負載均衡
閒談高可用和負載均衡 高可用叢集和負載均衡叢集想必大家或多或少都聽說過,但是很多人往往把這兩個搞混在一起,不加區分地使用這兩個概念。雖然說很多負載均衡的裝置有著高可用的特性,或者高可用的機器使用著負載均衡的方式分發流量,事實上,高可用和負載均衡是兩個完全不同的概
LVS DR模式負載均衡搭建、keepalived高可用+LVS負載均衡配合
lvs lvs dr模式 lvs負載均衡 keepalived+LVS LVS DR模式搭建 準備:dir(調度器):192.168.188.2rs1:192.168.188.3rs2:192.168.188.6vip:192.168.188.200 安裝ipvsadm yum insta
今天再次接觸高可用和負載均衡,相關理解如下
LV 通信協議 文件的 另一個 心跳 輪詢 依次 數據幀 keepaliv 一般來講,多臺服務器搭建成一個集群來運行相應的程序,這樣會避免單點故障,同時提升服務器的承載能力。 高可用,可稱為"HA"也叫做雙機熱備,同時實現高可用一般使用keepalived,且kee
LVS + Keepalived 搭建高可用的負載均衡群集
sage smtp cfg 設置權限 拓撲 alived exports 輪詢 dex Keepalived 的設計目標是搭建高可用的 LVS 負載均衡群集,可以調用 ipvsadm 工具來創建虛擬服務器、管理服務器池,而不僅僅用作雙機熱備。使用 Keepalived 搭建
lvs+keepalived 高可用及負載均衡
module pri gzip cal flv -i poll ORC 虛擬ip 一、環境準備 VIP:10.18.43.30 dr1:10.18.43.10 dr2:10.18.43.20 web1:10.18.43.13 web2:10.18.43.14
案例二(構建雙主高可用HAProxy負載均衡系統)
fresh htm nec ont unix outer index ces title 在案例一介紹HAProxy高可用負載均衡集群架構中,雖然通過Keepalived實現了HAProxy的高可用,但是嚴重浪費了服務器資源,因為在一主一備的Keepalived環境中,
keepalived實現nginx的高可用 + nginx負載均衡
2.6 ins 請求 原因 pid 可用 stat 根據 準備 前言 使用集群是網站解決高並發、海量數據問題的常用手段。當一臺服務器的處理能力、存儲空間不足時,不要企圖去換更強大的服務器,對大型網站而言,不管多麽強大的服務器,都滿足不了網站持續增長的業務需求。這種情況下
高階java高併發,高效能,分散式,高可用,負載均衡,系統架構實戰
Java併發程式設計(一): 併發程式設計的挑戰本文主要內容出自《Java併發程式設計的藝術》一書,是對該書內容的歸納和理解,有興趣的朋友請購買正版閱讀全部內容。 併發程式設計的目的是為了讓程式執行的更快,但是並不是啟動更多的執行緒,就能讓程式最大限度的併發執行。在進行併發程式設計時,如果希望通過多執行
SpringCloud-Eureka 服務註冊中心搭建--高可用以及負載均衡配置例項
前言: 由於公司使用的分散式框架太老,慢慢轉移使用SpringBoot微服務框架,後臺框架存在很多問題,為了優化底層服務,現採取如下措施: 0、Nexus搭建Maven私服 (集中
multipath多路徑高可用,負載均衡配置
1、預設配置為高可用,拷貝模板配置檔案到etc,重啟multipathd即可 #預設配置並不會實現負載均衡,只會實現高可用的效果 cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/ 重
Dubbo高可用和負載均衡
1、高可用 現象:zookeeper註冊中心宕機,還可以消費dubbo暴露的服務。 原因: 監控中心宕掉不影響使用,只是丟失部分取樣資料 資料庫宕掉後,註冊中心仍能通過快取提供服務列表查詢,但不能註冊新服務 註冊中心對等叢集,任意一臺宕掉後,將自動切換到另一臺 註
4、keepalived高可用nginx負載均衡
keepalived: HTTP_GET //使用keepalived獲取後端real server健康狀態檢測 SSL_GET(https) //這裡以為這後端使用的是http協議 TCP_CHECK  
lvs+keepalived+memcached+varnish+LNMP 實現高可用的負載均衡排程伺服器
實驗環境: web1 :eth0 192.168.4.11 web2 : eth0192.168.4.12 兩臺web伺服器需要配置VIP 排程器Lvs1: eth0 192.168.4.5 排程器Lvs2: eth
Redis之——搭建高可用及負載均衡的Redis
之前,給大家介紹了一些關於Redis的文章,大家可以參見博文中有關Redis的文章。今天,我們就一起來學習如何搭建高可用及負載均衡的Redis,好了,不多說了,我們直接進入正題吧。 一、測試環境 1、機器 母機:centos6.5-64 虛擬機器:centos
高可用(負載均衡)MYSQL(讀寫分離,主從切換)
架構簡介 此架構主要是由keepalived實現雙機高可用,維護了一個外網VIP,一個內網VIP。正常情況時,外網VIP和內網VIP都繫結在server1伺服器,web請求傳送到server1的Nginx,nginx對於靜態資源請求就直接在本機檢索並返回,對於PHP的動
Keepalive+Amoeba+Mysql 實現高可用,負載均衡及讀寫分離
一:實驗環境 寫:寫入的介面是keepalive配置的虛擬IP(192.168.1.60),而這個VIP指向雙主複製中的兩個節點。 讀:slave1(該slave1指向的是master1)。 二:實驗目的 Master1與master2實現高可用,master1
Keepalived熱備(處理單點故障,高可用) Keepalived+LVS(高可用,負載均衡) 、 HAProxy伺服器(負載均衡)
keepalived概述 keepalived執行原理 Top NSD CLUSTER DAY03 案例1:Keepalived高可用伺服器
keepalived+nginx+mysql實現高可用及負載均衡
最近搗鼓了一下mysql資料庫的高可用方案。藉助mysql官方的InnoDB Cluster 以及nginx+keepalived。能夠輕易的做到。效果及穩定性令人滿意。 前言: 首先這裡預設你已
Kafka部分:kafka的原理,解釋一下 leader 均衡機制(auto.leader.rebalance.enable=true),高可用和負載均衡的區別
kafka是什麼?使用場景? kafka是一個高吞吐的分散式訊息佇列系統。特點是生產者消費者模式,先進先出(FIFO)保證順序,自己不丟資料,預設每隔7天清理資料。訊息列隊常見場景:系統之間解耦合、峰值壓力緩衝、非同步通訊。 2.kafka生產訊息、儲存訊息、消費訊息
Keepalived+Nginx+Redis+Tomcat實現高可用web負載均衡
一、系統環境 作業系統:CentOS 7 tomcat 8.0.47 Nginx 1.12.2 Redis 4.0.2 192.168.124.128 tomcat1+Nginx+Redis 192.168.124.130 tomcat2