日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

微服务架构之「 下一代微服务 Service Mesh 」

發(fā)布時(shí)間:2024/4/11 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微服务架构之「 下一代微服务 Service Mesh 」 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

點(diǎn)擊上方“朱小廝的博客”,選擇“設(shè)為星標(biāo)

做積極的人,而不是積極廢人


Service Mesh 被大家稱為下一代的微服務(wù),是微服務(wù)領(lǐng)域的一顆新星,被大家討論的非常多。

我在大家的討論中,還看到有人說(shuō) “目前的微服務(wù)架構(gòu)我都沒(méi)學(xué)會(huì)呢,現(xiàn)在又來(lái)一個(gè)下一代微服務(wù),真學(xué)不動(dòng)了”。

哈哈,沒(méi)辦法,互聯(lián)網(wǎng)技術(shù)就是發(fā)展得這么快,這些技術(shù)其實(shí)也都是由于大家所在的公司業(yè)務(wù)規(guī)模和復(fù)雜度變大以后所推動(dòng)出來(lái)的。

最開始 Service Mesh 的概念是由Buoyant公司在2016年提出。然后在隨后幾年,業(yè)內(nèi)就圍繞著 Service Mesh 思想探索出了各種實(shí)現(xiàn),其中包括以 Linkerd 為代表的第一代 Service Mesh,隨后又有以 Istio 為代表的第二代 Service Mesh。

在國(guó)內(nèi)的一些大廠里,例如 阿里、新浪 等,也都有基于Service Mesh思想的自研實(shí)現(xiàn)。既然 Service Mesh 這么火,那它到底是什么呢?又該如何去應(yīng)用呢?

一、什么是「 Service Mesh 」?

Service Mesh 中文稱為 服務(wù)網(wǎng)格,為啥,因?yàn)樗牟渴饒D看起來(lái)就像一個(gè)網(wǎng)格,如下圖:

Service Mesh 就是一個(gè)基礎(chǔ)設(shè)施層,它是用于處理微服務(wù)中,服務(wù)與服務(wù)之間通信的一種技術(shù)。在 Service Mesh 的實(shí)踐方案中,它是由一系列輕量級(jí)的網(wǎng)絡(luò)代理組成的,并且這些網(wǎng)絡(luò)代理會(huì)與咱們的應(yīng)用部署在一起,特別適用于云原生應(yīng)用,因?yàn)?Service Mesh 可以做到應(yīng)用是無(wú)感知的。

(上圖的綠色小塊可以理解成是咱們微服務(wù)的應(yīng)用,藍(lán)色小塊可以理解成 Service Mesh 的輕量級(jí)網(wǎng)絡(luò)代理)

有了 Service Mesh 之后,微服務(wù)中,服務(wù)與服務(wù)之間的通信就是靠這些 網(wǎng)絡(luò)代理模塊 來(lái)保障。

那我們?yōu)樯缎枰捎?Service Mesh 呢,Service Mesh 幫我們解決了目前微服務(wù)之間調(diào)用的啥痛點(diǎn)了嗎?

二、為什么需要「 Service Mesh 」?

在傳統(tǒng)微服務(wù)架構(gòu)中,隨著業(yè)務(wù)越來(lái)越大,拆分的服務(wù)實(shí)例也越來(lái)越多,那么各個(gè)服務(wù)之間的依賴就變成了非常復(fù)雜的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),可能就類似于這樣了:

哈哈,暈圖了、暈圖了!

在如此復(fù)雜的分布式部署結(jié)構(gòu)下,咱們微服務(wù)中服務(wù)依賴調(diào)用和數(shù)據(jù)傳輸所面臨的問(wèn)題也成倍增加,極大的提高了服務(wù)治理的難度。

同時(shí),由于 容器化技術(shù) 的成熟和規(guī)模化,微服務(wù)都會(huì)采用容器化,并朝著 云原生應(yīng)用 的方向發(fā)展。而傳統(tǒng)的微服務(wù)架構(gòu)中,雖然也有服務(wù)治理的組件,但是這些組件大多需要在應(yīng)用代碼里進(jìn)行集成,這是不符合 云原生應(yīng)用 的思想的。因此,大家急需一個(gè)標(biāo)準(zhǔn)化,能高效部署和運(yùn)維的微服務(wù)體系方案。

因此,Service Mesh 就出現(xiàn)了,Service Mesh 就是用來(lái)解決這些痛點(diǎn)的,設(shè)計(jì)的目的就是用來(lái)解決微服務(wù)架構(gòu)中 服務(wù)間可靠調(diào)用、服務(wù)治理 等問(wèn)題。

下面就拿第一代 Service Mesh 產(chǎn)品 Linkerd 舉例說(shuō)明:

圖中可以看到,每一個(gè)服務(wù)實(shí)例(Service)的部署都會(huì)同時(shí)部署一個(gè) Linkerd 實(shí)例,并且服務(wù)之間的調(diào)用并不是直接進(jìn)行的,而是先經(jīng)過(guò) Linkerd 模塊去代理轉(zhuǎn)發(fā)完成的。

例如:Service A 需要調(diào)用 Service B 的時(shí)候,Service A 是把請(qǐng)求發(fā)給與它一起部署的 Linkerd-1 的,然后這個(gè) Linkerd-1 將請(qǐng)求發(fā)給 Service B 所部署模塊的 Linkerd-2,然后 ?Linkerd-2 再將請(qǐng)求內(nèi)容轉(zhuǎn)發(fā)給 Service B 處理。因此,在整個(gè)流程中,Service A ?和 Service B 只需要關(guān)注自己的業(yè)務(wù)邏輯即可,無(wú)需關(guān)注任何服務(wù)框架的功能,這些服務(wù)框架的功能都是由Linkerd 去實(shí)現(xiàn),Linkerd 要做 負(fù)載均衡、熔斷、限流、監(jiān)控等等。

下面我們具體來(lái)看看 Service Mesh 的原理。

三、「 Service Mesh 」的原理與應(yīng)用?

Service Mesh 的核心其實(shí)就2個(gè)模塊:SideCar 與 ?Control Plane,如圖:

搞懂了 SideCar 與 ?Control Plane 也就對(duì) Service Mesh 的基礎(chǔ)思想原理明白了。

  • SideCar:

    上面說(shuō)到的與服務(wù)部署在一起的輕量級(jí)網(wǎng)絡(luò)代理也就是指SideCar,它的作用就是實(shí)現(xiàn)服務(wù)框架的各項(xiàng)功能,這樣,就可以讓服務(wù)(Service A 或 Service B)回歸業(yè)務(wù)本質(zhì)。

    傳統(tǒng)的微服務(wù)架構(gòu)中,各種服務(wù)框架的功能(例如:服務(wù)發(fā)現(xiàn)、負(fù)載均衡、限流熔斷等)都代碼邏輯或多或少的都需要耦合到服務(wù)實(shí)例的代碼里,給服務(wù)實(shí)例增加了很多無(wú)關(guān)業(yè)務(wù)的代碼,也帶來(lái)了復(fù)雜度。

    有了SideCar之后,服務(wù)節(jié)點(diǎn)只做業(yè)務(wù)邏輯自身的功能,服務(wù)之間的調(diào)用交給了SideCar,由SideCar去注冊(cè)服務(wù)、去做服務(wù)發(fā)現(xiàn)、去做請(qǐng)求路由、去實(shí)現(xiàn)熔斷限流、去做日志統(tǒng)計(jì)。

    那么在這種新的微服務(wù)架構(gòu)中,所有的 SideCar 組成在一起,其實(shí)就是一個(gè)服務(wù)網(wǎng)格了。那么這個(gè)大型的服務(wù)網(wǎng)格并不是完全自治的,它還需要一個(gè)統(tǒng)一的控制節(jié)點(diǎn),也就是 Control Plane。

  • Control Plane:

    Control Plane 是用來(lái)從全局的角度上控制 SideCar 的。比如 它負(fù)責(zé)所有 SideCar 的注冊(cè),它存儲(chǔ)一個(gè)統(tǒng)一的路由表,幫助各個(gè) SideCar 進(jìn)行負(fù)載均衡和請(qǐng)求調(diào)度。它收集所有 SideCar 的監(jiān)控信息和日志數(shù)據(jù)。它就相當(dāng)于 Service Mesh架構(gòu) 的大腦。Control Plane 控制著 SideCar 來(lái)實(shí)現(xiàn)服務(wù)治理的各項(xiàng)功能。

  • 在文章的最開始提到過(guò),以 Linkerd 為代表的被稱為第一代 Service Mesh,而以 Istio 為代表的稱為了第二代 Service Mesh。主要的不同就是 Istio 引入了 Control Plane 的概念,可以通過(guò) ?Control Plane 來(lái)對(duì)服務(wù)進(jìn)行一些精細(xì)化控制,所以 Istio 也被稱為是實(shí)際上的 Service Mesh 標(biāo)準(zhǔn)產(chǎn)品。

    以上,就是我對(duì)微服務(wù)架構(gòu)中「 Service Mesh」的一些思考,你是怎么看的呢?

    想知道更多?描下面的二維碼關(guān)注我

    限時(shí)優(yōu)惠:極客時(shí)間課程《Elasticsearch核心技術(shù)與實(shí)戰(zhàn)》

    總結(jié)

    以上是生活随笔為你收集整理的微服务架构之「 下一代微服务 Service Mesh 」的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。