国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

分布式軟件架構(gòu)——傳輸鏈路

這篇具有很好參考價(jià)值的文章主要介紹了分布式軟件架構(gòu)——傳輸鏈路。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

傳輸鏈路

鏈路指無(wú)源的點(diǎn)到點(diǎn)的物理連接。鏈路是計(jì)算機(jī)網(wǎng)絡(luò)中的一個(gè)重要概念,它指的是連接兩個(gè)網(wǎng)絡(luò)設(shè)備的物理或邏輯路徑。簡(jiǎn)單來(lái)說(shuō),鏈路就是電信號(hào)或數(shù)據(jù)在網(wǎng)絡(luò)中傳輸?shù)穆窂健T谟?jì)算機(jī)網(wǎng)絡(luò)中,鏈路可以分為物理鏈路和邏輯鏈路兩種。物理鏈路是指連接兩個(gè)網(wǎng)絡(luò)設(shè)備的物理媒介,例如網(wǎng)線、光纖等。邏輯鏈路則是指通過(guò)網(wǎng)絡(luò)協(xié)議建立的邏輯連接,例如TCP/IP協(xié)議中的連接。

鏈路是計(jì)算機(jī)網(wǎng)絡(luò)中非常重要的概念,它負(fù)責(zé)連接網(wǎng)絡(luò)設(shè)備并保證數(shù)據(jù)的可靠傳輸。

前端優(yōu)化

以?xún)?yōu)化鏈路傳輸為目的的前端設(shè)計(jì)原則未來(lái)或許不再使用,比如

  1. Minimize HTTP Requests,減少請(qǐng)求數(shù)量
    減少請(qǐng)求數(shù)量的手段有:
  • a.雪碧圖(CSS Sprites)
  • b.CSS、JS文件合并/內(nèi)聯(lián)(Concatenation/Inline)
  • c.分段文檔(Multipart Document)
  • d.媒體(圖片、音頻)內(nèi)聯(lián)(Data Base64 URI)
  • e.合并Ajax請(qǐng)求(Batch Ajax Request)
  • f. … …
  1. Split Components Across Domains,擴(kuò)大并發(fā)請(qǐng)求數(shù)
    現(xiàn)代瀏覽器(Chrome、Firefox)一般可以為每個(gè)域名支持6個(gè)(IE為8~13個(gè))并發(fā)請(qǐng)求。如果想要更快地加載大量圖片或其他資源,就需要進(jìn)行域名分片(Domain Sharding),將圖片同步到不同主機(jī)或者同一個(gè)主機(jī)的不同域名上。
  2. GZip Components,啟用壓縮傳輸
    啟用壓縮傳輸能夠大幅減少需要在網(wǎng)絡(luò)上傳輸?shù)膬?nèi)容大小,節(jié)省流量。
  3. Avoid Redirects,避免頁(yè)面重定向
    當(dāng)頁(yè)面發(fā)生重定向,就會(huì)延遲整個(gè)文檔的傳輸。
  4. Put Stylesheets at the Top, Put Scripts at the Bottom,按重要性調(diào)節(jié)資源優(yōu)先級(jí)
    將重要的資源放在HTML的頭部,以便優(yōu)先下載。
  5. … …

連接數(shù)優(yōu)化

HTTP是以TCP為傳輸層的應(yīng)用層協(xié)議,但HTTP over TCP這種搭配,只能說(shuō)是TCP目前在互聯(lián)網(wǎng)的統(tǒng)治地位所造就的結(jié)果,而不能說(shuō)它們兩者配合工作就是合適的。

  • 一方面,HTTP傳輸對(duì)象(HTML、JS、CSS、圖片等)的主要特征是數(shù)量多、時(shí)間短、資源小、切換快。
  • 另一方面,TCP協(xié)議要求三次握手完成后才能開(kāi)始數(shù)據(jù)傳輸,TCP還有慢啟動(dòng)特性,導(dǎo)致通信建立連接時(shí)傳輸速率最低,后面逐步加速穩(wěn)定。

由于TCP協(xié)議本身是面向長(zhǎng)時(shí)間、大數(shù)據(jù)傳輸來(lái)設(shè)計(jì)的,所以只有在一段較長(zhǎng)的時(shí)間尺度內(nèi),TCP協(xié)議才能展現(xiàn)出穩(wěn)定性和可靠性的優(yōu)勢(shì),不會(huì)因?yàn)榻⑦B接的成本太高,成為了使用瓶頸。

開(kāi)發(fā)Tricks的使用困境

為緩解HTTP與TCP之間的矛盾,程序猿們一方面致力于減少發(fā)出的請(qǐng)求數(shù)量,另一方面致力于增加客戶(hù)端到服務(wù)端的連接數(shù)量。即前面提到的Minimize HTTP Requests和Split Components Across Domains兩條優(yōu)化措施的根本依據(jù)。

HTTP Archive對(duì)近2016~2020年數(shù)百萬(wàn)個(gè)URL地址進(jìn)行了采樣,得出一個(gè)結(jié)論:頁(yè)面平均請(qǐng)求沒(méi)有改變的情況下(桌面端下降3.8%,移動(dòng)端上升1.4%),TCP連接正在持續(xù)且幅度較大地下降(桌面端下降36.4%,移動(dòng)端下降28.6%),如下圖
分布式軟件架構(gòu)——傳輸鏈路,分布式

分布式軟件架構(gòu)——傳輸鏈路,分布式
開(kāi)發(fā)Tricks可以節(jié)省TCP連接外,也會(huì)帶來(lái)不少副作用。比如,

  • CSS Sprites合并多張圖片后,只要使用其中一張小圖片,也必須加載整個(gè)大圖片;如果某張小圖片需要修改,會(huì)導(dǎo)致整個(gè)大圖的緩存失效;樣式、腳本等文件的合并同理;
  • 媒體內(nèi)嵌時(shí),除了要承受Base64編碼導(dǎo)致的傳輸容量膨脹1/3的代價(jià)以外,也會(huì)無(wú)法有效利用緩存;
  • 合并異步請(qǐng)求后,導(dǎo)致所有請(qǐng)求的返回時(shí)間,都要受最慢請(qǐng)求的拖累,頁(yè)面整體響應(yīng)速度下降;
  • 圖片放到不同子域下面,將會(huì)導(dǎo)致更大的DNS解析負(fù)擔(dān);

連接復(fù)用技術(shù)的優(yōu)勢(shì)和缺陷

HTTP連接復(fù)用技術(shù),也即持久連接(Persistent Connection),或者叫連接Keep-Alive機(jī)制。它的原理是,讓客戶(hù)端對(duì)同一個(gè)域名長(zhǎng)期持有一個(gè)或多個(gè)不會(huì)用完即斷的TCP連接,典型做法是在客戶(hù)端維護(hù)一個(gè)FIFO隊(duì)列,每次取完數(shù)據(jù)之后的一段時(shí)間內(nèi),不自動(dòng)斷開(kāi)連接,以便獲取下一個(gè)資源時(shí)可以直接服用,避免創(chuàng)建TCP連接的成本。
但是,連接復(fù)用技術(shù)最明顯的副作用就是“隊(duì)首阻塞”(Head-of-Line Blocking)問(wèn)題。

解決方案:HTTP/2的多路復(fù)用技術(shù)
HTTP/1.x中,HTTP請(qǐng)求就是傳輸過(guò)程中最小粒度的信息單位,難以重組出有效信息;
HTTP/2中,幀(Frame)才是最小粒度的信息單位,它可以用來(lái)描述各種數(shù)據(jù),比如請(qǐng)求的Headers、Body,或者用來(lái)做控制標(biāo)識(shí)(打開(kāi)流、關(guān)閉流)。
其中流(Stream),是一個(gè)邏輯上的數(shù)據(jù)通道概念,每個(gè)幀都附帶有一個(gè)流ID,以標(biāo)識(shí)這個(gè)幀數(shù)語(yǔ)哪個(gè)流。
分布式軟件架構(gòu)——傳輸鏈路,分布式
與HTTP/1.x相反,HTTP/2本身反而變得更適合傳輸小資源,比如傳輸1000張10K的小圖,HTTP/2要比HTTP/1.x快,但傳輸10張1000K的大圖,則應(yīng)該HTTP/1.x會(huì)更快。

傳輸壓縮

HTTP很早就支持了GZip壓縮,因?yàn)镠TTP傳輸?shù)闹饕獌?nèi)容,比如HTML、CSS、Script等,主要是本文數(shù)據(jù),因此對(duì)于文本數(shù)據(jù)啟用壓縮的收益是非常高的,傳輸數(shù)據(jù)量一般會(huì)降至原有的20%左右。而對(duì)于不適合壓縮的資源,Web服務(wù)器則能根據(jù)MIME(Multipurpose Internet Mail Extensions)類(lèi)型,來(lái)自動(dòng)判斷是否對(duì)響應(yīng)進(jìn)行壓縮。
幾種壓縮方式:

  • 靜態(tài)預(yù)壓縮(Static Precompression):把靜態(tài)資源預(yù)先壓縮為.gz文件的形式存放起來(lái);
  • 即時(shí)壓縮(On-The-Fly Compression):在內(nèi)存的數(shù)據(jù)流中完成;

持久連接機(jī)制不再依靠TCP連接是否關(guān)閉,來(lái)判斷資源請(qǐng)求是否結(jié)束了。它會(huì)重用同一個(gè)連接,以便向同一個(gè)域名請(qǐng)求多個(gè)資源。
這個(gè)機(jī)制最初(HTTP/1.0)就是根據(jù)Content-Length判斷傳輸資源是否已經(jīng)結(jié)束。但啟動(dòng)即時(shí)壓縮后就無(wú)法給出Content-Length。依靠Content-Length來(lái)判斷傳輸結(jié)束是有缺陷的。HTTP1.1版本修復(fù)了缺陷,增加了另一種“分塊傳輸編碼”(Chunked Transfer Encoding)的資源結(jié)束判斷機(jī)制,徹底解決了Content-Length與持久連接的沖突問(wèn)題。

快速UDP網(wǎng)絡(luò)連接

要想從根本上改進(jìn)HTTP,就必須直接替換掉HTTP over TCP的根基。使用UDP協(xié)議替換TCP傳輸協(xié)議就是一種思路,2013年,Google在它的服務(wù)器(Google.com、YouTube.com等)啟用了名為快速UDP網(wǎng)絡(luò)連接(Quick UDP Internet Connections,QUIC)的傳輸協(xié)議。2018年末,IETF正式批準(zhǔn)了HTTP over QUIC使用HTTP/3的版本號(hào),確立為最新一代的互聯(lián)網(wǎng)標(biāo)準(zhǔn)。

QUIC自己實(shí)現(xiàn)的好處是能對(duì)每個(gè)流能做單獨(dú)的控制,如果其中一個(gè)流發(fā)生錯(cuò)誤,協(xié)議棧仍然可以獨(dú)立地繼續(xù)為其他流提供服務(wù)。
QUIC的另一個(gè)設(shè)計(jì)目標(biāo)是面向移動(dòng)設(shè)備的專(zhuān)門(mén)支持,在移動(dòng)設(shè)備上的主要優(yōu)勢(shì)體現(xiàn)在網(wǎng)絡(luò)切換的響應(yīng)速度上,QUIC提出了連接標(biāo)識(shí)符的概念,可以唯一標(biāo)識(shí)客戶(hù)端與服務(wù)器端之間的連接,而無(wú)需依靠IP地址。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-568124.html

到了這里,關(guān)于分布式軟件架構(gòu)——傳輸鏈路的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 分布式軟件架構(gòu)——服務(wù)端緩存的三種屬性

    分布式軟件架構(gòu)——服務(wù)端緩存的三種屬性

    在透明多級(jí)分流系統(tǒng)中,我們以流量從客戶(hù)端中發(fā)出開(kāi)始,以流量到達(dá)服務(wù)器集群中真正處理業(yè)務(wù)的節(jié)點(diǎn)結(jié)束。一起探索了在這個(gè)過(guò)程中與業(yè)務(wù)無(wú)關(guān)的一些通用組件,包括DNS、CDN、客戶(hù)端緩存,等等。 實(shí)際上,服務(wù)端緩存也是一種通用的技術(shù)組件,它主要用于減少多個(gè)客戶(hù)端

    2024年02月07日
    瀏覽(84)
  • 【軟件開(kāi)發(fā)】大規(guī)模分布式系統(tǒng)的容錯(cuò)架構(gòu)設(shè)計(jì)

    【軟件開(kāi)發(fā)】大規(guī)模分布式系統(tǒng)的容錯(cuò)架構(gòu)設(shè)計(jì)

    假設(shè)有一個(gè)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)里有一張?zhí)貏e大的表,里面有幾十億,甚至上百億的數(shù)據(jù)。更進(jìn)一步說(shuō),假設(shè)這一張表的數(shù)據(jù)量多達(dá)幾十個(gè) TB,甚至上百個(gè) TB,那么如果用 MySQL 之類(lèi)的數(shù)據(jù)庫(kù),單臺(tái)數(shù)據(jù)庫(kù)服務(wù)器上的磁盤(pán)可能都不夠放這一張表的數(shù)據(jù)! 假如你手頭有一個(gè)超大的數(shù)

    2024年02月04日
    瀏覽(86)
  • 四大軟件架構(gòu):掌握單體、分布式、微服務(wù)、Serverless 的精髓

    四大軟件架構(gòu):掌握單體、分布式、微服務(wù)、Serverless 的精髓

    簡(jiǎn)介: 如果一個(gè)軟件開(kāi)發(fā)人員,不了解軟件架構(gòu)的演進(jìn),會(huì)制約技術(shù)的選型和開(kāi)發(fā)人員的生存、晉升空間。這里我列舉了目前主要的四種軟件架構(gòu)以及他們的優(yōu)缺點(diǎn),希望能夠幫助軟件開(kāi)發(fā)人員拓展知識(shí)面。 單體架構(gòu)比較初級(jí),典型的三級(jí)架構(gòu),前端(Web/手機(jī)端)+中間業(yè)務(wù)邏

    2024年01月17日
    瀏覽(40)
  • 分布式系統(tǒng)中的分布式鏈路追蹤與分布式調(diào)用鏈路

    本文分享自天翼云開(kāi)發(fā)者社區(qū)《分布式系統(tǒng)中的分布式鏈路追蹤與分布式調(diào)用鏈路》,作者:c****w 在分布式系統(tǒng)中,由于服務(wù)間的調(diào)用關(guān)系復(fù)雜,需要實(shí)現(xiàn)分布式鏈路追蹤來(lái)跟蹤請(qǐng)求在各個(gè)服務(wù)中的調(diào)用路徑和時(shí)間消耗。這對(duì)問(wèn)題排查和性能監(jiān)控都很重要。 常用的分布式鏈

    2024年01月19日
    瀏覽(29)
  • 下一代服務(wù)架構(gòu):?jiǎn)误w架構(gòu)-->分布式架構(gòu)-->微服務(wù)(DDD)-->軟件定義架構(gòu)(SDF with GraphEngine)

    下一代服務(wù)架構(gòu):?jiǎn)误w架構(gòu)-->分布式架構(gòu)-->微服務(wù)(DDD)-->軟件定義架構(gòu)(SDF with GraphEngine)

    參考:自己實(shí)現(xiàn)一個(gè)SQL解析引擎_曾經(jīng)的學(xué)渣的博客-CSDN博客 ? ?

    2024年02月12日
    瀏覽(92)
  • 分布式鏈路追蹤專(zhuān)欄,分布式鏈路追蹤:Skywalking集群管理設(shè)計(jì)

    分布式鏈路追蹤專(zhuān)欄,分布式鏈路追蹤:Skywalking集群管理設(shè)計(jì)

    SkyWalking 是一個(gè)開(kāi)源 APM 系統(tǒng),包括針對(duì) Cloud Native 體系結(jié)構(gòu)中的分布式系統(tǒng)的監(jiān)視,跟蹤,診斷功能。核心功能如下: 服務(wù)、服務(wù)實(shí)例、端點(diǎn)指標(biāo)分析; 根本原因分析,在運(yùn)行時(shí)分析代碼; 服務(wù)拓?fù)鋱D分析; 服務(wù),服務(wù)實(shí)例和端點(diǎn)依賴(lài)性分析; 檢測(cè)到慢速服務(wù)和端點(diǎn); 性

    2024年02月01日
    瀏覽(50)
  • 深度解析四大主流軟件架構(gòu)模型:?jiǎn)误w架構(gòu)、分布式應(yīng)用、微服務(wù)與Serverless的優(yōu)缺點(diǎn)及場(chǎng)景應(yīng)用

    深度解析四大主流軟件架構(gòu)模型:?jiǎn)误w架構(gòu)、分布式應(yīng)用、微服務(wù)與Serverless的優(yōu)缺點(diǎn)及場(chǎng)景應(yīng)用

    ???? 博主貓頭虎 帶您 Go to New World.??? ?? 博客首頁(yè)——貓頭虎的博客?? ??《面試題大全專(zhuān)欄》 文章圖文并茂??生動(dòng)形象??簡(jiǎn)單易學(xué)!歡迎大家來(lái)踩踩~?? ?? 《IDEA開(kāi)發(fā)秘籍專(zhuān)欄》學(xué)會(huì)IDEA常用操作,工作效率翻倍~?? ?? 《100天精通Golang(基礎(chǔ)入門(mén)篇)》學(xué)會(huì)Golang語(yǔ)言

    2024年02月06日
    瀏覽(93)
  • 分布式鏈路追蹤專(zhuān)欄,Spring Cloud Sleuth:分布式鏈路追蹤之通信模型設(shè)計(jì)

    分布式鏈路追蹤專(zhuān)欄,Spring Cloud Sleuth:分布式鏈路追蹤之通信模型設(shè)計(jì)

    Spring Cloud Sleuth ?賦予分布式跟蹤的 ?Spring Boot? 自動(dòng)配置的一鍵解決方案。 Spring Cloud Sleuth? 是基于 ?Brave? 的封裝,也是很多公司采用開(kāi)源加自研的最佳解決方案。 那么從作為架構(gòu)師或者技術(shù)專(zhuān)家如何去借鑒優(yōu)秀框架的設(shè)計(jì)理念和思想,本次? Chat? 將開(kāi)啟作者既分布式鏈路

    2024年01月19日
    瀏覽(27)
  • 進(jìn)階分布式鏈路追蹤

    進(jìn)階分布式鏈路追蹤

    ? ? ? ? ? ? ? ? ? ? ? ? https://item.jd.com/14337086.html?編輯https://item.jd.com/14337086.html “ RocketMQ 消息中間件實(shí)戰(zhàn)派上下冊(cè)”是我既“ Spring Cloud Alibaba 微服務(wù)架構(gòu)實(shí)戰(zhàn)派上下冊(cè)”之后,又一本歷時(shí)超過(guò) 1 年半的巨無(wú)霸技術(shù)實(shí)戰(zhàn)類(lèi)型的書(shū)籍。 為了提高讀者閱讀本書(shū)的體驗(yàn)性,本書(shū)

    2024年02月02日
    瀏覽(21)
  • 分布式鏈路追蹤

    分布式鏈路追蹤

    隨著互聯(lián)網(wǎng)業(yè)務(wù)快速擴(kuò)展,軟件架構(gòu)也日益變得復(fù)雜,為了適應(yīng)海量用戶(hù)高并發(fā)請(qǐng)求,系統(tǒng)中越來(lái)越多的組件開(kāi)始走向分布式化,如單體架構(gòu)拆分為微服務(wù)、服務(wù)內(nèi)緩存變?yōu)榉植际骄彺?、服?wù)組件通信變?yōu)榉植际较ⅲ@些組件共同構(gòu)成了繁雜的分布式網(wǎng)絡(luò)。 在大型系統(tǒng)的微

    2024年02月16日
    瀏覽(20)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包