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打到站點(diǎn)層

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

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

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

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

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

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

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

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

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

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

但最終在互聯(lián)網(wǎng)上要傳輸?shù)陌〝?shù)據(jù)鏈路層傳輸?shù)陌械潱y(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 個(gè) byte,也就是說如果一個(gè) HTTP 請求有 2000 byte,那么它必須分成兩個(gè)包發(fā)送才能在網(wǎng)絡(luò)上傳輸,再來看看 HTTP 的格式

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

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

其實(shí)最關(guān)鍵的原因是四層以下其實(shí)只負(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)的集群,因?yàn)樗瞧邔迂?fù)載均衡器,與上下游各建立了一個(gè) TCP 鏈接

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

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

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

“OpenResty 是一個(gè)基于 Nginx 與 Lua 的高性能 Web 平臺,其內(nèi)部集成了大量精良的 Lua 庫、第三方模塊以及大多數(shù)的依賴項(xiàng)。用于方便地搭建能夠處理超高并發(fā)、擴(kuò)展性極高的動態(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 等的交互能力」這一點(diǎn)非常關(guān)鍵,我們之前不是說 Nginx 可以根據(jù) url 來決定打向哪個(gè)集群嗎,假設(shè)現(xiàn)在有一個(gè)這樣的場景:所有包含 operation 的請求都轉(zhuǎn)發(fā)到運(yùn)營中心的集群,則需要寫死類似如下的配置

upstream backend {

server 192.168.1.10:8080

server 192.168.1.11:8080

}

server {

location /operation {

proxy_pass http://backed

}

}

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

責(zé)任編輯:haq

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

    關(guān)注

    0

    文章

    128

    瀏覽量

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

    關(guān)注

    1

    文章

    38

    瀏覽量

    10335

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

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

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

掃碼添加小助手

加入工程師交流群

    評論

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

    逐流、逐包、Flowlet:哪種負(fù)載均衡技術(shù)更適合未來網(wǎng)絡(luò)?

    當(dāng)前主流的負(fù)載均衡技術(shù)主要包括三種類型:逐流的ECMP負(fù)載均衡、逐包負(fù)載均衡以及基于子流(Flo
    的頭像 發(fā)表于 09-22 14:17 ?1224次閱讀
    逐流、逐包、Flowlet:哪種<b class='flag-5'>負(fù)載</b><b class='flag-5'>均衡</b>技術(shù)更適合未來網(wǎng)絡(luò)?

    燃料電池負(fù)載均衡測試:解鎖高效供密碼

    在新能源領(lǐng)域蓬勃發(fā)展的當(dāng)下,燃料電池憑借其清潔、高效的特性脫穎而出。而負(fù)載均衡測試作為確保燃料電池穩(wěn)定運(yùn)行與性能優(yōu)化的關(guān)鍵環(huán)節(jié),意義非凡。以下是一套全面且實(shí)用的燃料電池負(fù)載均衡測試方案
    發(fā)表于 09-18 13:51

    Nginx負(fù)載均衡策略選擇指南

    上個(gè)月,我們的電商系統(tǒng)在大促期間突然出現(xiàn)用戶購物車數(shù)據(jù)丟失的問題。經(jīng)過排查發(fā)現(xiàn),罪魁禍?zhǔn)拙谷皇?b class='flag-5'>負(fù)載均衡策略配置不當(dāng)!
    的頭像 發(fā)表于 08-20 16:23 ?424次閱讀

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    天翼云彈性負(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ā)請求時(shí),就需要
    的頭像 發(fā)表于 10-25 16:20 ?1734次閱讀
    天翼云彈性<b class='flag-5'>負(fù)載</b><b class='flag-5'>均衡</b>介紹

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

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