負載均衡!中級運維必知的10個問題

2021-02-13 網絡民工

負載均衡是衡量初中級以上運維技術水平的重要標尺!

負載均衡是普通運維人員很難有機會接觸和系統學習的知識!

keepalived + lvs 的組合,執行ipvsadm ,輸出的數據顯示了每個後端伺服器連接的數量,一些伺服器的值高些,而一些卻低一些。一些人糾結:怎麼a伺服器活躍數是90,而b伺服器才55?

負載均衡的均衡是相對的,當訪問量很小的時候,這個差異會明顯一些。一旦上量,差別就會縮小。比如活躍數都是數千個,一些機器多幾十或者少幾百,你不會覺得有什麼不妥。

負載均衡的主要目標是高可用,只要負載均衡、監控檢查、失敗切換三個功能正常,並且從用戶的角度出發,訪問應用(比如網站)一切正常,才是重點,多幾個負載量,少幾個負載量無關緊要。

lvs + keepalived、haproxy+nginx、nginx + keepalived幾種組合,keepalived倒是一致之選,而其它幾個工具,選誰更好呢?

看場景吧,緩存類的應用,如squid適合lvs;其它情形可根據自己的使用習慣來選擇。

現在一般的web服務,棄用apache而選nginx居多,如果負載均衡再部署一個nginx,變成keepalived + nginx + nginx 的形式,個人感覺有點彆扭,更願意選擇haproxy。

很多時候可能是輸入的時候不小心,犯了低級的錯誤。比如keepalived裡邊,主備兩系統的router_id不一致、或者virtual_router_id不一致。

這類錯誤比較難以排查,在書寫的時候,一定要仔細。

另外一個情況可能是,在同一個區域網內,有多個負載均衡集群存在,集群之間的router_id 、virtual_router_id 要注意分別,保持唯一性。

經常在網上有人求助,按文檔部署的集群不能正常的工作。通過溝通,發現工作方式往往不正確。

那么正確、高效的方式是什麼呢(有些人稱最佳實踐)?請往下看:

檢查後端真實服務是否正常。

綁定負載均衡器的本地ip(不要綁vip),測試訪問是否正常。

綁定vip進行訪問,檢查訪問是否正常。

有人說我沒那麼大的訪問量,用負載均衡有點浪費。負載均衡是實現高可用的手段之一,不是以流量大小為出發點的。

如果你的公司或者機構,主要收入來自與網絡的話,發生故障造成服務不可訪問,造成的損失是否可以忍受,考慮好這個,再做決策。

還有人說,我用了阿里雲、騰訊雲,彈性計算、高可用,買個高配的雲主機,要什麼負載均衡!建議多了解一下,這些雲服務商有專門的負載均衡,要花錢的,用不著的話,它推這個有啥意義?

這是商業解決供應商的說辭,他們的市場做得比較成功,以至於一些技術人員,一旦提及開源解決方案,第一反應就是:開源的穩定麼?性能上得去麼?

前幾天有個系統集成商也只要質疑,我回答他:「你拿一個商業軟體,我找一個對應的開源軟體比比如何?」

大部分公有雲不提供havip支持,因此在技術上不太容易實現負載均衡。

從產品設計上考慮,用戶自己部署負載均衡,會與雲服務商推出的服務產生衝突。

從其不斷推出的產品線來看,恨不得把所有的服務都囊括進去,讓用戶從此依賴服務商,財源滾滾。

步驟如下:

A.確定問題是部分還是全部?是網絡問題還是系統問題?

B.檢查後端服務是否正常。因為後端才是真實提供服務的場所,是整個負載均衡存在的根基(就算負載均衡體系暫時崩潰了,只要後端服務正常,可臨時採取措施,把用戶請求直接暴露給用戶,可最快速度恢復業務)。在實際的工作中,大部分的故障集中在後端伺服器,比如大名鼎鼎的502。

C.排查負載均衡是否正常。一般情況下,負載均衡伺服器基本不安裝其它服務(一機多用者慎重),因此,除了硬碟被日誌塞滿產生故障外,另外一個可能就是硬體損壞。本人管理的系統,運行時間最長的負載均衡伺服器,有超過八年沒趴窩的。

部署了負載均衡,後端伺服器可以部分失效、負載均衡器本身也可以有一個失效。看起來很讓人放心,就算發生故障,也暫時能頂一陣。是不是慢吞吞地地心情好了,想起來了再去做故障恢復?

最好不要這樣幹,有故障發生,發現以後,儘可能快的把故障修復並再次加入集群,不玩心跳。

這與後端服務關係密切,後端程序、邏輯性能極佳,承載的並發數就大;反之就小,無確切的數據支撐。

上線前,有可能對系統做壓力測試,但這種測試大部分是一致性測試(至少是同一個訪問源),與真實的用戶訪問還是存在很大差異。

真實的用戶訪問,來源不同,訪問的對象不同,比如有的用戶網絡環境差,訪問速度慢,完成一次連接的時間長,佔有資源的釋放時間就要久一些。這種測試可做大概的參考,評估時應該預留餘量。

本文來源

作者:sery     來源:51CTO

出於傳播網絡知識之目的,轉載該文章,如需刪除,請私信。

微信號|Networking_MG

關注公眾號

加入「網絡工程師」交流群

相關焦點

  • 解密網際網路級別的負載均衡常用手段
    設置非常短的 DNS TTL 也不是什麼好主意;這意味著 DNS 服務的負載增加,延遲增加,因為客戶端不得不更加頻繁地執行 DNS 查找。如果你的 DNS 服務不可用,那麼使用更短的 TTL 訪問服務將更快地降級,因為緩存服務 IP 地址的客戶端更少。為了解決這個問題,你可以添加一對冗餘的 4 層(Layer 4)網絡均衡器,並在相同的虛擬 IP(VIP)地址提供服務。
  • 負載均衡原理的解析
    >相比http重定向,基於DNS的負載均衡完全節省了所謂的主站點,或者說DNS伺服器已經充當了主站點的職能。例如請求靜態文件,更適合使用前面介紹的基於DNS的負載均衡方式。4、反向代理伺服器可以監控後端伺服器,比如系統負載、響應時間、是否可用、TCP連接數、流量等,從而根據這些數據調整負載均衡的策略。
  • Linux運維:搭建HAProxy+Keepalived高可用負載均衡系統
    圖1  高可用HAProxy集群系統拓撲結構此結構要實現的功能是:通過HAProxy實現三個站點的負載均衡,即當用戶通過域名www.zb.com訪問網站時,HAProxy要將請求發送到webapp1主機;當用戶通過域名static.zb.com訪問網站時,HAProxy要將請求發送到webapp2主機;當用戶通過域名video.zb.com訪問網站時,HAProxy
  • 負載均衡概念入門
    對於簡單的站點來說,只需要進行簡單的配置即可,但對於具有動態內容並且每個用戶幾個資料庫查詢的複雜站點,這可能是一個難以處理的問題。這個問題本應隨著雲計算的發展而解決,但是,當一個網絡應用遇到意外的激增時,也有可能無法及時進行擴容。當談及負載均衡的時候,請記住一點分布式資源並不意味著均勻分配。並不是所有任務都一直需要所有可用的資源。
  • [譯] 現代網絡負載均衡與代理導論
    L7 負載均衡具備檢測應用層流量的能力,這帶來了大量額外的 好處,我們後面會更詳細看到。1.4 L7 負載均衡和 OSI 7 層模型前面討論 L4 負載均衡時我說過,使用 OSI 模型描述負載均衡特性是有問題的。
  • gRPC服務發現&負載均衡
    LB上有所有服務的地址映射表,通常由運維配置註冊,當服務消費方調用某個目標服務時,它向LB發起請求,由LB以某種策略,比如輪詢(Round-Robin)做負載均衡後將請求轉發到目標服務。LB一般具備健康檢查能力,能自動摘除不健康的服務實例。
  • Linux運維:基於虛擬主機的HAProxy負載均衡系統配置實例
    HAProxy的負載均衡調度器,整個應用架構要實現的功能為:當客戶端通過域名www.tb.com或tb.com訪問時,HAProxy將請求提交到電商網站伺服器群,進而實現電商網站的負載均衡;當客戶端通過域名bbs.tb.com訪問時就將請求調度到論壇伺服器群,實現論壇的負載均衡;當客戶端通過blog.tb.com訪問時則將請求調度到博客伺服器群中,實現博客的負載均衡;如果客戶端通過除上面三種方式外的任意方式請求服務時
  • 負載均衡常用手段解析
    它們可以是硬體設備,或者像 HAProxy 這樣的軟體均衡器。這意味著 DNS 記錄僅僅指向虛擬 IP 而不再做負載均衡。4 層負載均衡器將來自用戶的連接均衡分布在兩個 web 伺服器上4 層均衡器將來自網際網路的流量均衡地引導至後端伺服器。
  • 聊聊代碼 | 關於負載均衡的一切:總結與思考
    數據層的負載均衡,在我之前的《帶著問題學習分布式系統之數據分片》中有詳細介紹。在我看來,當我們提到一個負載均衡算法,或者具體的應用場景時,應該考慮以下問題:第一,是否意識到不同節點的服務能力是不一樣的,比如CPU、內存、網絡、地理位置。第二,是否意識到節點的服務能力是動態變化的,高配的機器也有可能由於一些突發原因導致處理速度變得很慢。
  • 使用Nginx進行四層負載均衡
    而TCP負載均衡,就是我們通常所說的"四層負載均衡",工作在"網絡層"和"傳輸層"。例如,LVS(Linux Virtual Server,Linux虛擬服務)和F5(一種硬體負載均衡設備)是屬於"四層負載均衡"的。
  • linux負載均衡總結性說明(四層負載/七層負載)
    在常規運維工作中,經常會運用到負載均衡服務。負載均衡分為四層負載和七層負載,那麼這兩者之間有什麼不同?
  • 這些 Nginx 負載均衡配置誤區,運維請注意~
    之前有很多朋友問關於Nginx的upstream模塊中max_fails及fail_timeout,這兩個指令,分別是配置關於負載均衡過程中
  • Nginx 反向代理、負載均衡圖文教程 !
    當然很多都是隨便一說的玩笑話,聽過一笑便可,不必當真,也不必抱怨了好了,今天就直接來說一下主題吧,前端要了解一些運維的Nginx用法,內容不多,簡單看看就好,這兩個功能在工作當中就夠用了,那麼首先來看個問題,什麼是反向代理與負載均衡什麼是反向代理與負載均衡什麼是反向代理當我們有一個伺服器集群,並且伺服器集群中的每臺伺服器的內容一樣的時候,同樣我們要直接從個人電腦訪問到伺服器集群伺服器的時候無法訪問
  • 負載均衡詳解
    分布式和業務拆分解決了,從集中到分布的問題,但是每個部署的獨立業務還存在單點的問題和訪問統一入口問題,為解決單點故障,我們可以採取冗餘的方式。將相同的應用部署到多臺機器上。解決訪問統一入口問題,我們可以在集群前面增加負載均衡設備,實現流量分發。負載均衡(Load Balance),意思是將負載(工作任務,訪問請求)進行平衡、分攤到多個操作單元(伺服器,組件)上進行執行。
  • Linux運維:測試HAProxy+Keepalived高可用負載均衡集群
    教程列表 見微信公眾號底部菜單 |  本文底部有推薦書籍 微信公眾號:計算機與網絡安全ID:Computer-network高可用的HAProxy負載均衡系統能夠實現HAProxy的高可用性、負載均衡特性和故障自動切換特性。
  • 通俗易懂負載均衡器
    但是現在,當客戶端數量增加時,即伺服器上的負載增加時,真正的問題就開始了。一臺伺服器無法承受所有客戶端請求的負載。為了解決這個問題,我們需要更多的伺服器。因為,負載均衡器可以在伺服器之間平衡或分配客戶端的負載(或流量),因此客戶端只需要和負載均衡器通信交互即可。
  • 圖文講解,如何使用 Nginx 反向代理、負載均衡
    來源:http://t.cn/AiKual8Y學到老活到老什麼是反向代理與負載均衡Nginx反向代理與負載均衡的實現nginx配置proxy_passUpstream模塊實現負載均衡工作中的簡單使用學到老活到老前端圈一直很新
  • 負載均衡的原理
    我們有個中間層啊,對,就是DNS,我們可以設置一下,讓我們網站的域名映射到多個伺服器的IP,用戶面對的是我們系統的域名,然後我們可以採用一種輪詢的方式, 用戶1的機器做域名解析的時候,DNS返回IP1, 用戶2的機器做域名解析的時候,DNS返回IP2. 這樣不就可以實現各個機器的負載相對均衡了嗎?」
  • 負載均衡原理的概述、原理解析
    負載均衡技術的實現,主要分為以下幾種:HTTP 重定向負載;DNS 域名解析負載;反向代理負載;IP 負載 (NAT 負載和 IP tunnel 負載);直接路由 (LVS—DR);IP隧道 (LVS—TUN)      負載均衡不能狹義地理解為分配給所有實際伺服器一樣多的工作量
  • 掃盲負載均衡
    從負載均衡的載體角度來說,可以分為硬體負載均衡和軟體負載均衡,大多數網站開發者要從軟體負載均衡的角度尋求實現,一方面是從成本最低,另一方面是更新和修改更加方便。從負載均衡模型角度來說,可以分為全局負載均衡和服務集群內部負載均衡。從客戶端角度出發,負載均衡可以分為如下類型:DNS負載均衡,硬體負載均衡,軟體負載均衡。