一些面試題3 0

2021-07-24 14:43:17 字數 4138 閱讀 9504

1,lvs的dr模式lvs的nat模式區別

nat模式:通過修改資料報文中的目的ip位址或者埠、源ip位址或者埠來實現排程。

通過網路位址轉換,排程器重寫請求報文的目標位址,根據預設的排程演算法,將請求分派給後端的真實伺服器;真實伺服器的響應報文通過排程器時,報文的源位址被重寫,再返回給客戶,完成整個負載排程過程。

缺點:入站和出站的資料都要經過排程器,會累。

擴充套件性有限。當伺服器節點

資料增長到20個或更多時,負載均衡器將成為整個系統的瓶頸,因為所有的請求包和應答包都需要經過負載均衡器再生。假使tcp包的平均長度是536位元組的話,平均包再生延遲時間大約為60us(在pentium處理器上計算的,採用更快的處理器將使得這個延遲時間變短),負載均衡器的最大容許能力為8.93m/s,假定每台物理伺服器的平台容許能力為400k/s來計算,負責均衡器能為22臺物理伺服器計算。

dr模式:不會修改客戶端傳來的資料報中的ip位址的,通過修改客戶端發來的資料報中的目的mac位址實現的,將資料報**到真實的伺服器,真實伺服器響應請求之後,將源和目的對調,直接給客戶端回包。

缺點:排程器和真實伺服器要在同一物理網路中(區域網)

順便說下tun模式

隧道模式:客戶端將請求發到負載均衡排程器,負載均衡排程器通過隧道將客戶的請求轉到真實的伺服器,真實的伺服器響應請求,直接給客戶端回包。

回包不經過排程器、排程器和真實伺服器可以不在同一網段

缺點:需要建立隧道、需要伺服器支援隧道協議

2,請解釋下四層負載均衡和和7層負載均衡的區別

(1)第四層負載均衡將乙個internet上合法註冊的ip位址對映為多個內部伺服器的ip位址,對每次tcp連線請求動態使用乙個內部ip位址,達到負載均衡的目的。

在第四層交換機中,乙個目標位址是伺服器集群的vip(虛擬ip)連線請求的資料報流經交換機,交換機根據sip、dip、tcp和udp的埠號和一定的負載均衡策略,在伺服器ip和vip之間進行對映,選擇伺服器群中最好的伺服器來處理連線請求。

(2)第七層負載均衡控制應用層服務的內容,提供了一種對訪問流量的高層控制方式,適合對http集群的應用,通過檢查流經的http報頭,根據報頭內的資訊來執行負載均衡任務。

① 所謂四層就是基於ip+埠的負載均衡;七層就是基於url等應用層資訊的負載均衡;同理,還有基於mac位址的二層負載均衡和基於ip位址的三層負載均衡。 換句換說,二層負載均衡會通過乙個虛擬mac位址接收請求,然後再分配到真實的mac位址;三層負載均衡會通過乙個虛擬ip位址接收請求,然後再分配到真實的ip位址;四層通過虛擬ip+埠接收請求,然後再分配到真實的伺服器;七層通過虛擬的url或主機名接收請求,然後再分配到真實的伺服器。

② 所謂的四到七層負載均衡,就是在對後台的伺服器進行負載均衡時,依據四層的資訊或七層的資訊來決定怎麼樣**流量。 比如四層的負載均衡,就是通過發布三層的ip位址(vip),然後加四層的埠號,來決定哪些流量需要做負載均衡,對需要處理的流量進行nat處理,**至後台伺服器,並記錄下這個tcp或者udp的流量是由哪台伺服器處理的,後續這個連線的所有流量都同樣**到同一臺伺服器處理。七層的負載均衡,就是在四層的基礎上(沒有四層是絕對不可能有七層的),再考慮應用層的特徵,比如同乙個web伺服器的負載均衡,除了根據vip加80埠辨別是否需要處理的流量,還可根據七層的url、瀏覽器類別、語言來決定是否要進行負載均衡。舉個例子,如果你的web伺服器分成兩組,一組是中文語言的,一組是英文語言的,那麼七層負載均衡就可以當使用者來訪問你的網域名稱時,自動辨別使用者語言,然後選擇對應的語言伺服器組進行負載均衡處理。

所謂四層負載均衡,也就是主要通過報文中的目標位址和埠,再加上負載均衡裝置設定的伺服器選擇方式,決定最終選擇的內部伺服器。    以常見的tcp為例,負載均衡裝置在接收到第乙個來自客戶端的syn 請求時,即通過上述方式選擇乙個最佳的伺服器,並對報文中目標ip位址進行修改(改為後端伺服器ip),直接**給該伺服器。tcp的連線建立,即三次握手是客戶端和伺服器直接建立的,負載均衡裝置只是起到乙個類似路由器的**動作。在某些部署情況下,為保證伺服器回包可以正確返回給負載均衡裝置,在**報文的同時可能還會對報文原來的源位址進行修改。

所謂七層負載均衡,也稱為「內容交換」,也就是主要通過報文中的真正有意義的應用層內容,再加上負載均衡裝置設定的伺服器選擇方式,決定最終選擇的內部伺服器。    以常見的tcp為例,負載均衡裝置如果要根據真正的應用層內容再選擇伺服器,只能先**最終的伺服器和客戶端建立連線(三次握手)後,才可能接受到客戶端傳送的真正應用層內容的報文,然後再根據該報文中的特定字段,再加上負載均衡裝置設定的伺服器選擇方式,決定最終選擇的內部伺服器。負載均衡裝置在這種情況下,更類似於乙個**伺服器。負載均衡和前端的客戶端以及後端的伺服器會分別建立tcp連線。所以從這個技術原理上來看,七層負載均衡明顯的對負載均衡裝置的要求更高,處理七層的能力也必然會低於四層模式的部署方式。

3,請解釋tengine和haproxy的異同

haproxy的特點是:

1、haproxy也是支援虛擬主機的。

2、haproxy的優點能夠補充nginx的一些缺點,比如支援session的保持,cookie的引導;同時支援通過獲取指定的url來檢測後端伺服器的狀態。

3、haproxy跟lvs類似,本身就只是一款負載均衡軟體;單純從效率上來講haproxy會比nginx有更出色的負載均衡速度,在併發處理上也是優於nginx的。

4、haproxy支援tcp協議的負載均衡**,可以對mysql讀進行負載均衡,對後端的mysql節點進行檢測和負載均衡,大家可以用lvs+keepalived對mysql主從做負載均衡。

5、haproxy負載均衡策略非常多,haproxy的負載均衡演算法現在具體有如下8種:

① roundrobin,表示簡單的輪詢,這個不多說,這個是負載均衡基本都具備的;

② static-rr,表示根據權重,建議關注;

③ leastconn,表示最少連線者先處理,建議關注;

⑤ ri,表示根據請求的uri;

⑥ rl_param,表示根據請求的url引數』balance url_param』 requires an url parameter name;

⑦ hdr(name),表示根據http請求頭來鎖定每一次http請求;

⑧ rdp-cookie(name),表示根據據cookie(name)來鎖定並雜湊每一次tcp請求

tengine是基於nginx開發的乙個分支,是由**的開發團隊負載維護,已經開源,目前**網web就是tengine。tengine主要修改了nginx的部分模組功能,使功能更加完善,更具有維護性

nginx之所以現在被各大小公司應用的主要原因就是nginx的高併發,同時能承載上萬個併發連線,相當強大。nginx的優點:*上面說過,高併發是nginx的主要特點。*配置檔案簡單、簡潔,方便配置。*充足的第三方功能模組的支援。nginx的缺點:*將nginx當做反向**時,負載均衡功能不是很好,對後端伺服器的健康檢查功能較弱。

一些linux面試題3 0

1,分割槽後如何通知核心 partprobe dev sda partx a dev sda 2,全部磁碟塊由由哪些組成?分別為引導塊 專用塊 i節點表塊和資料儲存塊 3,安裝系統時必須分配的分割槽?linux系統對硬碟分割槽時,必須有兩種分割槽型別 檔案系統分割槽 和 交換分割槽。4,檔案的型別有...

一些面試題

q 您在什麼情況下會用到虛方法?它與介面有什麼不同?a 當在繼承類中想重寫某一方法時會用到虛方法 虛方法是類的成員函式,介面相當於抽象類.q override與過載有什麼區別?a override 就是覆蓋的意思,覆蓋父類的同名方法,而過載則是通過參數列來呼叫方法.q 值型別與引用型別有什麼區別?a...

一些面試題

1.如何檢視埠8080的程序 netstat anp grep 8080 lsof i 8080 2.在 tmp目錄下建立test.txt檔案,內容為 hello,world 用乙個命令寫出來。echo hello,world tmp test.txt 3.敘述下列服務的預設埠號。ftp 20,21...