在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

負載均衡能否能直接從LVS打到站點層

開關電源芯片 ? 來源:碼海 ? 作者:坤哥 ? 2021-08-17 10:29 ? 次閱讀

上一篇負載均衡的文章有一個點不少人有疑問,所以我覺得有必要單獨寫篇文章解釋一下,先看下上篇文章展示的架構圖:

4b41a5ba-fe81-11eb-9bcf-12bb97331649.png

這里一些朋友的疑問點是 Nginx 是否多此一舉,能否能直接從 LVS 打到站點層?即改成下面的架構

4b567bb6-fe81-11eb-9bcf-12bb97331649.jpg

答案是不行,為什么?其實我在上文中有提到一些點已經暗示了,只不過不那么明顯而已,我再單獨把這些點拎出來

LVS 是四層負載均衡器

Nginx 是七層負載均衡器,可以根據 url 來轉發流量

首先我們需要明白為什么根據 url 轉發請求這么重要,假設現在有「營銷」,「運營中心」這兩個集群,使用 Nginx 的話很簡單,根據 url 來決定到底將請求轉發到哪個集群即可

4b8463a0-fe81-11eb-9bcf-12bb97331649.jpg

由于 LVS 不能根據 url 轉發,那么請問 LVS 收到請求后該轉給誰

那么 LVS 為什么不能根據 url 來轉發呢,因為它是四層負載均衡器,什么是四層和七層,這里就要簡單復習下 ISO 七層參考模型了

4bb55438-fe81-11eb-9bcf-12bb97331649.jpg

由此可知,七層對應著應用層,四層對應著傳輸層,如果從應用層發起一個請求會在「傳輸層」,「網絡層」,「數據鏈路層」分別加上各自層的包頭,比如現在 A 電腦要發一個「I‘m Deepon」數據給 B 電腦,則在各層的轉化流程如下圖所示

4bd51fca-fe81-11eb-9bcf-12bb97331649.jpg

但最終在互聯網上要傳輸的包(數據鏈路層傳輸的包叫禎,統稱為包)是有大小限制的,如下圖所示

4be74f60-fe81-11eb-9bcf-12bb97331649.jpg

在互聯網上傳輸的包不能超過 14 + 20 + 20 + 1460 + 4 = 1518 byte,其中包含的應用層(即 payload)數據一次性不能超過 1460 個 byte,也就是說如果一個 HTTP 請求有 2000 byte,那么它必須分成兩個包發送才能在網絡上傳輸,再來看看 HTTP 的格式

4bf14718-fe81-11eb-9bcf-12bb97331649.jpg

如果一個 HTTP POST 請求很大,超過了 1460 byte(一個包 payload 的最大值),那么它必須分成兩個包才能傳輸,也就意味著一個包可能包含 URI,另一個包不包含 URI,既然包都不包含 URI,那么請問 LVS 如何根據 URL 來轉發給相應的集群呢,所以理解了 TCP/IP 的工作機制相信你不難理解開頭的問題:LVS 是四層負載均衡器,無法根據 URL 來轉發請求。

其實最關鍵的原因是四層以下其實只負責包的轉發,只要拿出包頭查看一下 ip 地址就可知道該轉發哪里,很高效,如果你還要根據 url 來匹配那么需要拿到應用層數據根據正則等做匹配,顯然會消耗更多的性能,所以專業的人做專業的事,應該由 LVS 來負責承載所有流量,Nginx 負責根據 url 來轉發給對應的集群,因為它是七層負載均衡器,與上下游各建立了一個 TCP 鏈接

4c088f04-fe81-11eb-9bcf-12bb97331649.jpg

所以如果有多個分包,由于 Nginx 與 client 建立了 TCP 連接,可以在 Nginx 先拿到 client 發出的所有的分包再組裝成完整的報文, 然后根據 url 選擇其中一臺 server 與之建立 TCP 連接后將數據分批完整地傳給上游 server

另外需要注意的是現在在大廠中如果只將 Nginx 作為轉發之用是不夠的,一般用的 OpenResty ,什么是 OpenResty 呢

“OpenResty 是一個基于 Nginx 與 Lua 的高性能 Web 平臺,其內部集成了大量精良的 Lua 庫、第三方模塊以及大多數的依賴項。用于方便地搭建能夠處理超高并發、擴展性極高的動態 Web 應用、Web 服務和動態網關。

OpenResty 的目標是讓你的 Web 服務直接跑在 Nginx 服務內部,充分利用 Nginx 的非阻塞 I/O 模型,不僅僅對 HTTP 客戶端請求,甚至于對遠程后端諸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都進行一致的高性能響應。”

注意上面一句「提供了與 MySQL ,Redis 等的交互能力」這一點非常關鍵,我們之前不是說 Nginx 可以根據 url 來決定打向哪個集群嗎,假設現在有一個這樣的場景:所有包含 operation 的請求都轉發到運營中心的集群,則需要寫死類似如下的配置

upstream backend {

server 192.168.1.10:8080

server 192.168.1.11:8080

}

server {

location /operation {

proxy_pass http://backed

}

}

在我們集團中類似這樣的規則非常多,難道要像上面這樣把所有的規則都一個個寫死在 Nginx 的配置文件里嗎?顯然不可行,更合理的方式是把這些規則(哪個 url 對應哪些集群)保存在 MySQL 中,然后 Nginx 在啟動的時候將這些規則從 MySQL 中取出并保存在 Redis 及本地緩存中,然后 Nginx 要根據 url 匹配的時候從本地緩存(如果沒有從 redis 拿,redis 過期從 MySQL 拿)里拿這些規則再根據匹配項轉發到相應的集群,Nginx 沒有這樣的能力,而 OpenResty 由于集成了 Lua,引入了與 MySQL, Redis 等交互的模塊,所以用它是可行的,所以最終架構如下(將 Nginx 換成 OpenResty)

責任編輯:haq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 負載均衡
    +關注

    關注

    0

    文章

    112

    瀏覽量

    12373
  • LVS
    LVS
    +關注

    關注

    1

    文章

    36

    瀏覽量

    9957

原文標題:再談負載均衡

文章出處:【微信號:gh_3980db2283cd,微信公眾號:開關電源芯片】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    常見的lvs負載均衡算法

    常見的lvs負載均衡算法包括輪詢(RR)、加權輪詢(WRR)、最小連接(LC)、加權最小連接(WLC)、基于局部性的最少鏈接(LBLC)、帶復制的LBLC(LBLCR)、目標地址散列(DH)、源地址
    的頭像 發表于 12-12 13:50 ?118次閱讀

    負載均衡服務器與服務器如何連接?

    負載均衡服務器與服務器如何連接?負載均衡服務器與服務器可通過多種方式連接,包括直接連接、交換機連接、路由器連接以及云計算環境中的連接。小型網
    的頭像 發表于 12-09 13:41 ?136次閱讀

    常用的服務器負載均衡多少錢一臺?

    服務器負載均衡的價格因配置、功能、類型(硬件、軟件或云服務)及服務提供商不同而異。硬件負載均衡價格區間大,數千元到數十萬元不等;軟件
    的頭像 發表于 12-05 11:52 ?104次閱讀

    多鏈路負載均衡設置在哪里?

    多鏈路負載均衡設置涉及交換機、路由器和(可選)負載均衡器的設置。首先規劃網絡拓撲和IP地址,備份設備配置。然后,在交換機上配置VLAN和Trunk鏈路,在路由器上配置接口、路由協議和策
    的頭像 發表于 11-13 10:19 ?151次閱讀

    nginx負載均衡配置介紹

    目錄 nginx負載均衡 nginx負載均衡介紹 反向代理與負載均衡 nginx
    的頭像 發表于 11-10 13:39 ?268次閱讀
    nginx<b class='flag-5'>負載</b><b class='flag-5'>均衡</b>配置介紹

    華納云:什么是負載均衡?優化資源利用率的策略

    負載均衡是現代計算機網絡架構中不可或缺的一部分,它通過智能分配請求和任務,確保系統資源的高效利用。本文將探討負載均衡的概念、工作原理、優化資源利用率的策略及其在實際應用中的重要性。 1
    的頭像 發表于 10-28 16:07 ?175次閱讀

    天翼云彈性負載均衡介紹

    負載均衡(Load Balancing)是一種優化資源分配的技術,主要用于在網絡環境中分散工作負載,以提高系統的響應速度、吞吐量以及可靠性。在互聯網服務中,當單臺服務器無法處理大量并發請求時,就需要
    的頭像 發表于 10-25 16:20 ?613次閱讀
    天翼云彈性<b class='flag-5'>負載</b><b class='flag-5'>均衡</b>介紹

    IPVS負載均衡原理解析

    ipvs (IP Virtual Server) 實現了傳輸負載均衡,也就是我們常說的4LAN交換,作為 Linux 內核的一部分。ipvs運行在主機上,在真實服務器集群前充當
    的頭像 發表于 10-24 17:34 ?241次閱讀

    零基礎也可以搞懂負載均衡怎么配置!

    負載均衡怎么配置?在Linux中配置負載均衡器的步驟涉及多個環節,包括選擇負載均衡軟件、安裝
    的頭像 發表于 10-12 15:58 ?257次閱讀

    負載均衡是什么意思?盤點常見的三種方式

    負載均衡是什么意思?負載均衡(LoadBalancing)是一種計算機技術,主要用于在多個計算資源(如服務器、虛擬機、容器等)中分配和管理負載
    的頭像 發表于 09-29 14:30 ?292次閱讀

    負載均衡服務由幾部分組成?分別是什么

    均衡服務通常由六部分組成,分別是客戶端、負載均衡器、后端服務器、負載均衡算法、監控和健康檢查及會話保持。這六者互相協同工作,實現了流量的有效
    的頭像 發表于 09-18 11:16 ?284次閱讀

    如何利用traceroute命令發現網絡中的負載均衡

    在網絡管理和故障排除中,了解數據包的路徑和識別負載均衡節點是非常重要的。traceroute 命令是一個用于跟蹤數據包在網絡中經過的路由路徑的工具。本文將詳細介紹如何利用 traceroute 命令發現網絡中的負載
    的頭像 發表于 08-07 15:13 ?453次閱讀
    如何利用traceroute命令發現網絡中的<b class='flag-5'>負載</b><b class='flag-5'>均衡</b>

    基于LVS+Keepalived實現高可用負載均衡

    LVS 是一種預裝在 Linux 系統中,基于四、具有強大性能的反向代理服務器。ipvsadm 是 LVS 的命令行管理工具。
    的頭像 發表于 04-09 12:30 ?1218次閱讀
    基于<b class='flag-5'>LVS</b>+Keepalived實現高可用<b class='flag-5'>負載</b><b class='flag-5'>均衡</b>

    視頻網站服務器的四種負載均衡技術

    域名并返回多個服務器的IP地址列表,客戶端會根據DNS返回的IP地址進行請求。這種方式簡單易用,但無法直接控制請求的分配,且存在DNS緩存問題。另外,由于DNS解析的緩存時間,可能導致負載均衡。 2、硬件
    的頭像 發表于 04-01 17:36 ?653次閱讀

    是德科技與英特爾攜手完成負載均衡單節點2100萬連接新建性能測試

    2024年1月18日,是德科技(Keysight Technologies,Inc.)與英特爾攜手完成負載均衡產品單節點2100萬連接新建性能測試。英特爾提供軟硬件結合優化的四負載
    的頭像 發表于 01-18 14:11 ?637次閱讀
    是德科技與英特爾攜手完成<b class='flag-5'>負載</b><b class='flag-5'>均衡</b>單節點2100萬連接新建性能測試
    主站蜘蛛池模板: 午夜小视频男女在线观看| 久久999| www.av毛片| 午夜在线视频观看版| 免费黄色网址网站| 天堂在线www| 国产精品片| 天堂在线www在线资源| 99久久综合精品免费| 国产一卡二卡3卡4卡四卡在线视频| 日本黄色视屏| 色视频免费国产观看| 香港三级理论在线观看网站| 精品国产柚木在线观看| 国产午夜视频在线观看网站| 国产69精品久久| 久久午夜神器| 日本黄色小说视频| 天天夜天干天天爽| 亚洲精品久| 美女被免费视频的网站| 3344在线| 欧洲三级网站| 免费视频播放| 欧美人与性另类| 97天天操| 亚洲视频一区网站| 3344在线观看永久免费| xxxxx69日本老师hd| 高清videosgratis欧洲69| 免费播放欧美毛片欧美aaaaa| 男人午夜| 亚洲国产成人久久77| 五月婷婷深爱五月| 欧美性狂猛bbbbbxxxxx| 男人的天堂视频网站清风阁| 男人透女人超爽视频免费| 丁香综合| 午夜看片网站| 久久天天躁狠狠躁狠狠躁| 在线观看中文字幕一区 |