chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

負(fù)載均衡能否能直接從LVS打到站點層

開關(guān)電源芯片 ? 來源:碼海 ? 作者:坤哥 ? 2021-08-17 10:29 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

LVS 是四層負(fù)載均衡器

Nginx 是七層負(fù)載均衡器,可以根據(jù) url 來轉(zhuǎn)發(fā)流量

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

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

由于 LVS 不能根據(jù) url 轉(zhuǎn)發(fā),那么請問 LVS 收到請求后該轉(zhuǎn)給誰

那么 LVS 為什么不能根據(jù) url 來轉(zhuǎn)發(fā)呢,因為它是四層負(fù)載均衡器,什么是四層和七層,這里就要簡單復(fù)習(xí)下 ISO 七層參考模型了

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

由此可知,七層對應(yīng)著應(yīng)用層,四層對應(yīng)著傳輸層,如果從應(yīng)用層發(fā)起一個請求會在「傳輸層」,「網(wǎng)絡(luò)層」,「數(shù)據(jù)鏈路層」分別加上各自層的包頭,比如現(xiàn)在 A 電腦要發(fā)一個「I‘m Deepon」數(shù)據(jù)給 B 電腦,則在各層的轉(zhuǎn)化流程如下圖所示

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

但最終在互聯(lián)網(wǎng)上要傳輸?shù)陌〝?shù)據(jù)鏈路層傳輸?shù)陌械?,統(tǒng)稱為包)是有大小限制的,如下圖所示

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

在互聯(lián)網(wǎng)上傳輸?shù)陌荒艹^ 14 + 20 + 20 + 1460 + 4 = 1518 byte,其中包含的應(yīng)用層(即 payload)數(shù)據(jù)一次性不能超過 1460 個 byte,也就是說如果一個 HTTP 請求有 2000 byte,那么它必須分成兩個包發(fā)送才能在網(wǎng)絡(luò)上傳輸,再來看看 HTTP 的格式

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

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

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

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

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

另外需要注意的是現(xiàn)在在大廠中如果只將 Nginx 作為轉(zhuǎn)發(fā)之用是不夠的,一般用的 OpenResty ,什么是 OpenResty 呢

“OpenResty 是一個基于 Nginx 與 Lua 的高性能 Web 平臺,其內(nèi)部集成了大量精良的 Lua 庫、第三方模塊以及大多數(shù)的依賴項。用于方便地搭建能夠處理超高并發(fā)、擴展性極高的動態(tài) Web 應(yīng)用、Web 服務(wù)和動態(tài)網(wǎng)關(guān)。

OpenResty 的目標(biāo)是讓你的 Web 服務(wù)直接跑在 Nginx 服務(wù)內(nèi)部,充分利用 Nginx 的非阻塞 I/O 模型,不僅僅對 HTTP 客戶端請求,甚至于對遠(yuǎn)程后端諸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都進(jìn)行一致的高性能響應(yīng)?!?/p>

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

upstream backend {

server 192.168.1.10:8080

server 192.168.1.11:8080

}

server {

location /operation {

proxy_pass http://backed

}

}

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

責(zé)任編輯:haq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 負(fù)載均衡
    +關(guān)注

    關(guān)注

    0

    文章

    122

    瀏覽量

    12596
  • LVS
    LVS
    +關(guān)注

    關(guān)注

    1

    文章

    38

    瀏覽量

    10185

原文標(biāo)題:再談負(fù)載均衡

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    一文詳解Nginx負(fù)載均衡

    Nginx作為負(fù)載均衡器,通過將請求分發(fā)到多個后端服務(wù)器,以提高性能、可靠性和擴展性。支持多種負(fù)載均衡算法,如輪詢、最小連接數(shù)、IP哈希等,可以根據(jù)需求選擇適合的算法。
    的頭像 發(fā)表于 06-25 14:51 ?174次閱讀
    一文詳解Nginx<b class='flag-5'>負(fù)載</b><b class='flag-5'>均衡</b>

    和七負(fù)載均衡的核心區(qū)別

    在現(xiàn)代分布式系統(tǒng)和云計算架構(gòu)中,負(fù)載均衡(Load Balancing, LB)是確保高可用性、可擴展性和性能優(yōu)化的關(guān)鍵技術(shù)。負(fù)載均衡器根據(jù)不同的OSI模型層級工作,主要分為四
    的頭像 發(fā)表于 05-29 17:42 ?305次閱讀

    常見網(wǎng)絡(luò)負(fù)載均衡的幾種方式

    常見網(wǎng)絡(luò)負(fù)載均衡的幾種方式包括:DNS負(fù)載均衡、反向代理負(fù)載均衡、IP
    的頭像 發(fā)表于 03-06 11:14 ?514次閱讀

    交流PLC能否直接負(fù)載的探討

    在現(xiàn)代工業(yè)自動化控制系統(tǒng)中,PLC(可編程邏輯控制器)作為一種核心控制設(shè)備,被廣泛應(yīng)用于各種生產(chǎn)場合。PLC的輸出類型多樣,其中交流PLC是否直接負(fù)載是一個值得探討的問題。 PLC的輸出模塊通常
    的頭像 發(fā)表于 01-10 14:00 ?585次閱讀
    交流PLC<b class='flag-5'>能否</b><b class='flag-5'>直接</b>帶<b class='flag-5'>負(fù)載</b>的探討

    常見的lvs負(fù)載均衡算法

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

    負(fù)載均衡服務(wù)器與服務(wù)器如何連接?

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

    常用的服務(wù)器負(fù)載均衡多少錢一臺?

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

    多鏈路負(fù)載均衡設(shè)置在哪里?

    多鏈路負(fù)載均衡設(shè)置涉及交換機、路由器和(可選)負(fù)載均衡器的設(shè)置。首先規(guī)劃網(wǎng)絡(luò)拓?fù)浜虸P地址,備份設(shè)備配置。然后,在交換機上配置VLAN和Trunk鏈路,在路由器上配置接口、路由協(xié)議和策
    的頭像 發(fā)表于 11-13 10:19 ?463次閱讀

    nginx負(fù)載均衡配置介紹

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

    華納云:什么是負(fù)載均衡?優(yōu)化資源利用率的策略

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

    天翼云彈性負(fù)載均衡介紹

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

    IPVS負(fù)載均衡原理解析

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

    零基礎(chǔ)也可以搞懂負(fù)載均衡怎么配置!

    負(fù)載均衡怎么配置?在Linux中配置負(fù)載均衡器的步驟涉及多個環(huán)節(jié),包括選擇負(fù)載均衡軟件、安裝
    的頭像 發(fā)表于 10-12 15:58 ?604次閱讀

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

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

    負(fù)載均衡服務(wù)由幾部分組成?分別是什么

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