您好,登錄后才能下訂單哦!
lvs的共模模式有三種
第一種 lvs/nat 工作原理是怎么樣的呢?比如小明是客戶端,小馬是調度器也就是lvs,商店們是Readserver;現在小明想要一個蛋糕,但是小明這個人的天性呢在街坊鄰里都是出了名的好吃懶做的少爺,小明他們家族有錢有勢吧,所以小馬才會給小明當牛作馬的,最關鍵的一點是小明是非常霸道的,每次買東西都是不給錢,都是直接讓小馬那他的簽字信給那些商店,所以每次他想要的東西呢,都會叫小馬(可能是他的仆人或是非常能受的了他這種少爺脾氣的朋友)去幫他買東西。好故事就先講到這里,知道了上面的這個故事之后,接下來在了解lvs/nat模式下的原理就容易許多了,現在是小明叫小馬去買一個蛋糕(這句話就相當于客戶端給lvs發送來了一個請求),然后小馬有沒有錢,所以要先把小馬給的簽字信給賣蛋糕的那家商店看之后才能如愿的讓商店的老板把蛋糕給小馬,小馬才能把蛋糕給小明(這句話意思就是說把客戶端發送給lvs的數據包里面的ip目的地址改成給客戶端提供到數據的realserver的ip,注意這個動作也是在lvs這個家伙中完成的,然后lvs就可以根據他的調度算法將數據發送給realserver了,realserver處理完了客戶端的請求之后就把數據發送給lvs了,lvs就把原來客戶端發送過來的數據包的原ip地址改成自己的ip地址,再把目的地址(就是之前給realserver發送時的ip)改成客戶端的ip地址,你不要有這種疑問,說為什么不把之前lvs封裝的目的地址來做lvs的原ip地址呢?我就告訴你這個就相當于矢量一樣的,必須要有開始才有后面的箭頭。你要這么想你就可以明白了,這整個過程都是為了實現通信,你要把他們全部看成是一個整體。)
第二種 lvs/tun 工作原理又是怎樣的呢?這個就沒有故事了,但是上面的任務的姓名還是要用的。小明這次經過他父親的教導之后呢?已經乖了好多了。現在就開始講小明跟小馬及商店的故事了。小明叫小馬去幫他買一輛寶馬汽車,所以小馬很聰明小馬怕出去路上遭到搶劫,在去之前就先把錢用一個很安全的袋子來裝好了,到了寶馬汽車點之后把這個袋子給商家的點鈔機了。因為小馬不會開車也沒有駕駛證,所以呢,商家就直接帶小馬還有那輛寶馬汽車回來給小明了。客戶端發送一個數據包給lvs,然后lvs就把客戶端發送過來的數據包重新包裝一下,在將數據發送給realserver,realserver接收到數據包處理了之后,就直接將數據返回給客戶端。
第三種 lvs/dr 工作原理是怎樣的呢? 這個故事又有點比較詼諧了~ 小馬跟那些商店們都很樂意為小明服務了,小馬跟商店們都是一個團隊了。但是呢?小明現在好像得了一種說話不清楚的病,所以只有他的好朋友小馬才聽得懂他說的話。首先要弄清楚一點就是,lvs跟realserver對外提供的都是同一個ip,你可以這樣認為lvs跟realserver必須在一個廣播域,也可以理解為他們是在同一個交換機。客戶端發送一個數據包給lvs,lvs收到之后就會根據調度算法跟arp協議來叫能為客戶端提供數據的realserver來給客戶端返回數據,因為所有的realserver都將ip的調度權給了lvs,雖然是同一個ip對外服務,但是由于小明得病了,商店們不能聽懂小明說話的意思,所以就由lvs來代替他們轉達了。
LVS:使用集群技術和Linux操作系統實現一個高性能、高可用的服務器,它具有很好的可伸縮性(Scalability)、可靠性(Reliability)和可管理性(Manageability),感謝章文嵩博士為我們提供如此強大實用的開源軟件。
LVS的特點是:
1、工作在四層之上,所以受流量io的影響幾乎沒有,正是因為這個特性讓他成了負載均衡器里面的最強王者
2、配置性低,工作穩定,擁有完整的雙機熱備方案,如LVS+Keepalived和LVS+Heartbeat,不過我們在項目實施中用得最多的還是LVS/DR+Keepalived;
3、應用范圍比較廣,可以對所有應用做負載均衡;
下面就是他的缺點
6、軟件本身不支持正則處理,不能做動靜分離,其實現在許多網站在這方面都有較強的需求,這個是Nginx/HAProxy+Keepalived的優勢所在。
7、如果是網站應用比較龐大的話,實施LVS/DR+Keepalived起來就比較復雜了,特別后面有Windows Server應用的機器的話,如果實施及配置還有維護過程就比較復雜了,相對而言,Nginx/HAProxy+Keepalived就簡單多了。
Nginx的特點是:
1、工作在網絡的7層之上,可以針對http應用做一些分流的策略,比如針對域名、目錄結構,它的正則規則比HAProxy更為強大和靈活
2、Nginx對網絡的依賴非常小,理論上能ping通就就能進行負載功能,這個也是它的優勢所在
3、Nginx安裝和配置比較簡單,測試起來比較方便
4、負載壓力還行并且穩定,一般能支撐超過幾萬次的并發量
5、Nginx可以通過端口檢測到服務器內部的故障,比如根據服務器處理網頁返回的狀態碼、超時等等,并且會把返回錯誤的請求重新提交到另一個節點,不過其中缺點就是不支持url檢測跟session會話
6、Nginx僅能支持http和Email
7、Nginx不僅僅是一款優秀的負載均衡器/反向代理軟件,它同時也是功能強大的Web server、
8、Nginx現在作為Web反向加速緩存越來越成熟了,很多朋友都已在生產環境下投入生產了,而且反映效果不錯,速度比傳統的Squid服務器更快,有興趣的朋友可以考慮用其作為反向代理加速器。
HAProxy的特點是:
1、HAProxy是支持虛擬主機的,以前有朋友說這個不支持虛擬主機,我這里特此更正一下。
2、能夠補充Nginx的一些缺點比如Session的保持,Cookie的引導等工作
3、支持url檢測后端的服務器出問題的檢測會有很好的幫助。
4、本身就只是一款負載均衡軟件,單純從效率上來講HAProxy更會比Nginx有更出色的負載均衡速度,在并發處理上也是優于Nginx的。
5、HAProxy可以對Mysql讀進行負載均衡,對后端的MySQL節點進行檢測和負載均衡,不過在后端的MySQL slaves數量超過10臺時性能不如LVS,所以我向大家推薦LVS+Keepalived。
6、HAProxy的算法現在也越來越多了,具體有如下8種:
①roundrobin,表示簡單的輪詢,這個不多說,這個是負載均衡基本都具備的;
②static-rr,表示根據權重,建議關注;
③leastconn,表示最少連接者先處理,建議關注;
④source,表示根據請求源IP,這個跟Nginx的IP_hash機制類似,我們用其作為解決session問題的一種方法,建議關注;
⑤ri,表示根據請求的URI;
⑥rl_param,表示根據請求的URl參數'balance url_param' requires an URL parameter name;
⑦hdr(name),表示根據HTTP請求頭來鎖定每一次HTTP請求;
⑧rdp-cookie(name),表示根據據cookie(name)來鎖定并哈希每一次TCP請求。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。