1. 【看點(diǎn)牛逼的】什么是ServiceMesh?

        共 2048字,需瀏覽 5分鐘

         ·

        2021-01-07 12:10


        本文公眾號(hào)來(lái)源:愛(ài)笑的架構(gòu)師

        作者:雷架

        本文已收錄至我的GitHub

        e3f9817539cd017c8179e4385d9a80e1.webp

        原始時(shí)代

        1969年11月,為了便于高校間共享資源,美國(guó)國(guó)防部高級(jí)研究計(jì)劃管理局建立一個(gè)名為阿帕網(wǎng)絡(luò)ARPAnet,起初只有四個(gè)節(jié)點(diǎn)。

        679bbb823ecc310d4c9905ed0b21cbb4.webp阿帕網(wǎng)起源

        一年后阿帕網(wǎng)的節(jié)點(diǎn)數(shù)量增至15個(gè),此后平均每隔二十天就有一臺(tái)大型計(jì)算機(jī)接入。

        隨著網(wǎng)絡(luò)在世界范圍不斷擴(kuò)大,不同國(guó)家不同地區(qū)各自形成了一個(gè)網(wǎng)絡(luò),操著不同方言彼此間互不相通,諸侯割據(jù)格局已經(jīng)形成。

        483a5ef539ea1b9f3eaf54f0fe3c1ec5.webp隔離的阿帕網(wǎng)

        這個(gè)時(shí)候機(jī)器與機(jī)器之間通信是靠彼此約定的方式進(jìn)行。

        13779a5f001dd4f830753a137cb3de4f.webp計(jì)算機(jī)靠方言通信

        機(jī)器需要自行處理網(wǎng)絡(luò)通信過(guò)程中遇到的丟包、亂序、重試等問(wèn)題。

        青銅時(shí)代

        為了解決各國(guó)家各地區(qū)網(wǎng)絡(luò)不能互通的問(wèn)題,1973年兩位年輕的小伙子開(kāi)始發(fā)力了,致力于研究一種通訊方法,能夠解決不同機(jī)器型號(hào)的計(jì)算機(jī)互相通信,簡(jiǎn)單說(shuō)就是用普通話替代方言,這就是大家熟知的“TCP/IP”協(xié)議。

        66f128d9968c723fe02e7644f28dca5c.webp鮑勃·卡恩(左)與溫頓·瑟夫(右)

        隨著 TCP/IP 協(xié)議逐漸普及后,一張大的 Internet 網(wǎng)絡(luò)由此形成。

        48f1c4cd626b4adc8f1f3f5a6d06187c.webpInternet

        這個(gè)時(shí)候機(jī)器與機(jī)器之間通信的問(wèn)題已經(jīng)解決,TCP/IP 可以保證信息可靠性傳輸,我們只用關(guān)系業(yè)務(wù)邏輯即可。

        4a644fb6f74e737a0b06bd7e185fe18e.webp依賴 TCP/IP協(xié)議實(shí)現(xiàn)機(jī)器間傳輸

        黃金時(shí)代

        在 TCP/IP 協(xié)議剛興起時(shí),計(jì)算機(jī)上的應(yīng)用還很貧乏,機(jī)器與機(jī)器之間通信一般用來(lái)簡(jiǎn)單的數(shù)據(jù)傳輸。

        隨著 WEB 互聯(lián)網(wǎng)技術(shù)興起,基于 TCP/IP 協(xié)議出現(xiàn)了很多應(yīng)用層協(xié)議,國(guó)內(nèi)出現(xiàn)了一批優(yōu)秀的互聯(lián)網(wǎng)公司如騰訊、新浪、搜狐、淘寶等。

        當(dāng)時(shí)訪問(wèn)量并不大,采用單體架構(gòu)基本就可以滿足。

        64f0b53b36d7ab8a34dcbb8ccb268f8f.webp單體應(yīng)用之間調(diào)用

        服務(wù)的數(shù)量不多,每個(gè)服務(wù)都有一個(gè)唯一的IP 地址,服務(wù)與服務(wù)之間交互通過(guò) IP尋址。

        鉑金時(shí)代

        網(wǎng)民數(shù)量越來(lái)越多,單個(gè)實(shí)例扛不住日益增長(zhǎng)的訪問(wèn)量。通常會(huì)在一個(gè)機(jī)器上部署多個(gè)實(shí)例組成集群,服務(wù)1訪問(wèn)服務(wù)2不再是之前的點(diǎn)到點(diǎn)了,現(xiàn)在變成了點(diǎn)到多點(diǎn),中間會(huì)加一個(gè)負(fù)載均衡解決流量均衡問(wèn)題。

        4a052728b4f2de283779e4896f7351f3.webp單體應(yīng)用集群之間調(diào)用

        鉆石時(shí)代

        隨著互聯(lián)網(wǎng)業(yè)務(wù)訪問(wèn)量井噴,通過(guò)橫向擴(kuò)展服務(wù)實(shí)例的方法也開(kāi)始遇到瓶頸了,單個(gè)服務(wù)越來(lái)越大,代碼模塊耦合嚴(yán)重,修改一行代碼可能影響整個(gè)系統(tǒng)。

        問(wèn)題來(lái)了,解決方案也隨著而來(lái),“微服務(wù)”橫空出世了。將一個(gè)業(yè)務(wù)服務(wù)按功能模塊切分為多個(gè)微服務(wù),比如將 Service1 切分為 Micro Service1,Micro Service2,Micro Service3。

        在單體服務(wù)中Micro Service1調(diào)用Micro Service2可能就是一個(gè)模塊調(diào)用另外一個(gè)模塊,調(diào)用一個(gè)公開(kāi)的函數(shù)就能搞定,拆為微服務(wù)之后就變成了兩個(gè)微服務(wù)直接的調(diào)用,這種調(diào)用是要通過(guò)網(wǎng)絡(luò)通信實(shí)現(xiàn)。

        5732eca014deee8afdf244fae130ebbb.webp微服務(wù)間調(diào)用

        星耀時(shí)代

        隨著業(yè)務(wù)擴(kuò)張,對(duì)系統(tǒng)的高可用要求越來(lái)越高,一些重點(diǎn)微服務(wù)如訂單、賬單等可能會(huì)部署成百上千個(gè)實(shí)例,運(yùn)維人員的負(fù)擔(dān)也在逐漸加大,如果機(jī)器掛了要手動(dòng)刪除,如果遇到重大活動(dòng)如雙十一可能要擴(kuò)展幾千個(gè)實(shí)例,運(yùn)維人員需要手工添加,人工干預(yù)越多出錯(cuò)的概率越大。

        第一代微服務(wù)技術(shù)應(yīng)運(yùn)而生。

        7b7e25383e4e296d1af7029e7c7c856e.webp代理內(nèi)嵌

        每個(gè)微服務(wù)內(nèi)嵌一個(gè)代理用來(lái)處理服務(wù)注冊(cè)和發(fā)現(xiàn)的邏輯,國(guó)內(nèi)以阿里的 Dubbo,微博的 Motan 為代表。這類(lèi)框架不足的地方很明顯:微服務(wù)與代理耦合、不支持多語(yǔ)言。

        王者時(shí)代

        針對(duì)第一代微服務(wù)框架的不足,大家在紛紛探索下一代微服務(wù)框架。

        在每一個(gè)主機(jī)上單獨(dú)部署一個(gè)代理進(jìn)程,多個(gè)微服務(wù)共用一個(gè)代理進(jìn)程,實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)和負(fù)載均衡。

        ab194879d94178f1ed935cb1ba3e0997.webp代理進(jìn)程

        這種模式通常被大家稱為“sideCar”,也就是“邊車(chē)模式”。

        什么叫“邊車(chē)”,在早期有一種摩托車(chē),駕駛位置旁邊掛著一個(gè)拖斗,對(duì)比微服務(wù)旁邊掛一個(gè)代理進(jìn)程,所以形象地稱為“邊車(chē)模式”。

        df33152da82233bec7d16f920fb4df6f.webp摩托車(chē)拖斗

        在新一代的 ServiceMesh 架構(gòu)中,服務(wù)消費(fèi)者和服務(wù)提供者都會(huì)部署SideCar。

        9bd2b4dd24a7019aca1972f71c30477e.webpSideCar 模式

        服務(wù)與服務(wù)之間是靠 sideCar 連接起來(lái),sideCar 用來(lái)處理與業(yè)務(wù)無(wú)關(guān)的注冊(cè)、發(fā)現(xiàn)、熔斷、限流等治理能力。

        略去業(yè)務(wù)服務(wù)和其他無(wú)關(guān)的東西,將所有的 sideCar 連接起來(lái)可以得到下面這張圖:

        01fce1d8ddda0cce34d69fcfb301d8b1.webp服務(wù)網(wǎng)格

        是不是長(zhǎng)得像網(wǎng)格,服務(wù)網(wǎng)格(service mesh)由此得名。

        維基百科是這樣定義服務(wù)網(wǎng)格

        服務(wù)網(wǎng)格是一個(gè)基礎(chǔ)設(shè)施層,用于處理服務(wù)間通信。云原生應(yīng)用有著復(fù)雜的服務(wù)拓?fù)?,服?wù)網(wǎng)格保證請(qǐng)求在這些拓?fù)渲锌煽康卮┧蟆T趯?shí)際應(yīng)用當(dāng)中,服務(wù)網(wǎng)格通常是由一系列輕量級(jí)的網(wǎng)絡(luò)代理組成的,它們與應(yīng)用程序部署在一起,但對(duì)應(yīng)用程序透明。

        總結(jié)

        ServiceMesh(服務(wù)網(wǎng)格)的特點(diǎn):

        • 場(chǎng)景:用于微服務(wù)間的服務(wù)通信和服務(wù)治理
        • 方案:邊車(chē)模式
        • 定位:基礎(chǔ)設(shè)施層

        服務(wù)網(wǎng)格是一種比較新的架構(gòu)風(fēng)格,大家在技術(shù)選型時(shí)不要盲目追新,適合當(dāng)前業(yè)務(wù)發(fā)展的技術(shù)才是最好的技術(shù)。大家學(xué)會(huì)了嗎?


        歡迎關(guān)注我的微信公眾號(hào)【面試造火箭】來(lái)聊聊Java面試的事兒

        歡迎添加我的私人微信進(jìn)一步交流和學(xué)習(xí),也可以來(lái)一場(chǎng)朋友圈點(diǎn)贊之交

        如果顯示頻繁,微信手動(dòng)搜索sanwaiyihao添加即可

        瀏覽 41
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 厨房脱岳裙子在后面挺进视频 | 日韩美女乱伦 | 久久久国产露脸精品 | 色天堂在线看 | 国产午夜精品在线观看 |