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

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

生活随笔

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

编程问答

微服务的下一步,离不开服务网格

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

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

后臺(tái)回復(fù)"書(shū)",獲取

軟件行業(yè)走了很長(zhǎng)一段路,在整個(gè)過(guò)程中,軟件體系結(jié)構(gòu)也已經(jīng)發(fā)展了很多。經(jīng)歷了1層(單節(jié)點(diǎn)),2層(客戶(hù)端/服務(wù)器),3層和分布式,我們?cè)诖诉^(guò)程中看到了一些不同的軟件架構(gòu)模式。

微服務(wù)面臨的挑戰(zhàn)

大多數(shù)軟件公司,正從單體架構(gòu)(Monolithic)過(guò)渡到微服務(wù)架構(gòu)(Microservices),而微服務(wù)架構(gòu)(Microservices)也正在逐步接管軟件行業(yè)。單體架構(gòu)雖然有很多好處,但在滿(mǎn)足現(xiàn)代軟件開(kāi)發(fā)需求時(shí)也有很多缺點(diǎn)。

微服務(wù)架構(gòu)使我們能夠更頻繁,更獨(dú)立地部署應(yīng)用程序,并可靠地滿(mǎn)足現(xiàn)代軟件應(yīng)用程序開(kāi)發(fā)要求。

將單體應(yīng)用分解為微服務(wù)應(yīng)用

微服務(wù)架構(gòu)幾乎解決了單體架構(gòu)的所有缺點(diǎn)。微服務(wù)提供了故障隔離,滿(mǎn)足應(yīng)用更小,更快的部署,具備應(yīng)用的可伸縮性,使得不同服務(wù)可以采用不同的開(kāi)發(fā)技術(shù),提高了開(kāi)發(fā)效率,滿(mǎn)足了以業(yè)務(wù)為中心的需求。

盡管微服務(wù)架構(gòu)相對(duì)于其他架構(gòu)具有許多優(yōu)勢(shì),但它也面臨著一系列挑戰(zhàn)。在微服務(wù)體系結(jié)構(gòu)中,它必須處理與設(shè)計(jì)分布式系統(tǒng)時(shí)遇到的問(wèn)題。

微服務(wù)架構(gòu)背后的思想是,我們將擁有多個(gè)獨(dú)立的較小服務(wù)集,每個(gè)服務(wù)提供單獨(dú)的業(yè)務(wù)功能,而不是擁有一個(gè)大型的單個(gè)代碼庫(kù)。通過(guò)這種方法,現(xiàn)代軟件應(yīng)用程序?qū)⑿枰獛资畟€(gè)、甚至數(shù)百個(gè)單獨(dú)服務(wù)的協(xié)同工作。

通過(guò)微服務(wù)架構(gòu),引入了網(wǎng)絡(luò)依賴(lài),并引發(fā)了可靠性問(wèn)題。網(wǎng)絡(luò)可靠性,延遲,帶寬和網(wǎng)絡(luò)安全性,是我們必須處理的一些與網(wǎng)絡(luò)相關(guān)的挑戰(zhàn)。

在服務(wù)之間實(shí)現(xiàn)通信也將是一項(xiàng)艱巨的任務(wù)。隨著服務(wù)數(shù)量的增加,我們必須處理它們之間的交互。除了服務(wù)之間的通信外,我們還必須處理整個(gè)系統(tǒng)運(yùn)行狀況的監(jiān)視,容錯(cuò),日志記錄和遙測(cè)功能,處理多點(diǎn)故障等等。使用微服務(wù)架構(gòu),由于我們必須處理許多服務(wù)間通信和基礎(chǔ)網(wǎng)絡(luò),因此調(diào)試問(wèn)題可能會(huì)更加棘手。

隨著基于第三方類(lèi)庫(kù)和組件的引入,克服了與微服務(wù)體系結(jié)構(gòu)有關(guān)的上述挑戰(zhàn),每個(gè)服務(wù)也都具備了這些通用功能(監(jiān)視,運(yùn)行狀況檢查,日志記錄,遙測(cè)等),使得服務(wù)到服務(wù)的通信順暢且可靠。但是,將這些功能整合到每一項(xiàng)服務(wù)中,這在開(kāi)發(fā)和維護(hù)上都需要付出很多努力。

開(kāi)發(fā)人員使用第三方類(lèi)庫(kù)和組件(例如Eureka,Ribbon,Hystrix)來(lái)提供這些通用功能,例如服務(wù)發(fā)現(xiàn),負(fù)載均衡,斷路器,日志記錄和度量,遙測(cè)等。

結(jié)合了業(yè)務(wù)功能和網(wǎng)絡(luò)相關(guān)功能的微服務(wù)

但是,使用第三方庫(kù)和組件會(huì)帶來(lái)一系列不同的挑戰(zhàn),例如:

  • 緊密耦合-這些第三方庫(kù)/組件的編碼和配置與服務(wù)中的業(yè)務(wù)功能緊密相關(guān)。現(xiàn)在,應(yīng)用程序代碼是業(yè)務(wù)功能和這些其他庫(kù)/組件配置的混合。

  • 編碼/配置的復(fù)雜性增加-使用的第三方庫(kù)/組件,可能必須使用不同的編程和配置語(yǔ)言集

  • 可維護(hù)性差—每當(dāng)這些外部庫(kù)/組件升級(jí)時(shí),我們都必須更新應(yīng)用程序代碼,對(duì)其進(jìn)行驗(yàn)證并部署這些更改

  • 調(diào)試/故障排除復(fù)雜度增加-現(xiàn)在服務(wù)是與第三方庫(kù)/組件的混合,如果出現(xiàn)應(yīng)用故障,開(kāi)發(fā)人員必須花費(fèi)大量時(shí)間來(lái)了解代碼并排查問(wèn)題

沒(méi)有服務(wù)網(wǎng)格體系結(jié)構(gòu)的微服務(wù)

盡管微服務(wù)架構(gòu)提供了很多好處,但是開(kāi)發(fā)人員在面對(duì)上述挑戰(zhàn)時(shí)也面臨很多困難。這些挑戰(zhàn)促使開(kāi)發(fā)人員找到了更好的替代方案–Service Mesh(服務(wù)網(wǎng)格)。

微服務(wù)的解決方案

服務(wù)網(wǎng)格可以定義為處理微服務(wù)架構(gòu)中服務(wù)間通信的專(zhuān)用基礎(chǔ)結(jié)構(gòu)層,從而降低了上述挑戰(zhàn)帶來(lái)的復(fù)雜性。Service Mesh使我們能夠成功,高效地運(yùn)行分布式微服務(wù)架構(gòu),并提供保護(hù),連接和監(jiān)視微服務(wù)的統(tǒng)一方法。

服務(wù)網(wǎng)格背后的想法非常簡(jiǎn)單。不要在服務(wù)代碼中增加其他與基礎(chǔ)架構(gòu)/網(wǎng)絡(luò)相關(guān)的細(xì)節(jié),而讓它僅關(guān)注其必須執(zhí)行的業(yè)務(wù)功能。

通常,Service Mesh提供以下功能:

  • 負(fù)載均衡

  • 服務(wù)發(fā)現(xiàn)

  • 健康檢查

  • 認(rèn)證方式

  • 流量管理和路由

  • 斷路器和故障轉(zhuǎn)移

  • 安全管理

  • 指標(biāo)收集和監(jiān)控

  • 故障注入

有了Service Mesh,我們不必使用任何第三方庫(kù)/組件,就可以在每個(gè)微服務(wù)中提供與網(wǎng)絡(luò)相關(guān)的通用功能,例如配置,路由,遙測(cè),記錄,斷路等。Service Mesh將把那些與網(wǎng)絡(luò)相關(guān)的通用功能抽象/外部化為一個(gè)單獨(dú)的組件/層,稱(chēng)為“服務(wù)代理”。

服務(wù)網(wǎng)格將應(yīng)用程序中使用第三方庫(kù)/組件的復(fù)雜性解耦。

現(xiàn)在,開(kāi)發(fā)人員可以根據(jù)與應(yīng)用程序或網(wǎng)絡(luò)相關(guān)的問(wèn)題輕松排查任何問(wèn)題的根本原因,從而使他們的生活變得異常便捷。借助Service Mesh架構(gòu),業(yè)務(wù)功能和與網(wǎng)絡(luò)相關(guān)的功能之間的職責(zé)分工清晰。

具有服務(wù)代理(Sidecar)的微服務(wù)

通常,Sidecar模式用于實(shí)現(xiàn)服務(wù)網(wǎng)格體系結(jié)構(gòu)。在這種模式下,我們可以在服務(wù)旁邊部署服務(wù)網(wǎng)格代理。服務(wù)代理的Sidecar將復(fù)雜性從應(yīng)用程序中抽象出來(lái),并處理服務(wù)發(fā)現(xiàn),流量管理,負(fù)載均衡,斷路器等功能。

具有服務(wù)網(wǎng)格架構(gòu)的基于微服務(wù)的解決方案

總而言之,采用基于服務(wù)網(wǎng)格架構(gòu)的微服務(wù),開(kāi)發(fā)人員:

  • 無(wú)需擔(dān)心使用任何第三方庫(kù)/組件來(lái)提供與網(wǎng)絡(luò)相關(guān)的功能

  • 所有服務(wù)到服務(wù)的通信將通過(guò)稱(chēng)為“服務(wù)代理”的組件/層,因此我們不必在每個(gè)服務(wù)中都實(shí)現(xiàn)它

  • 將業(yè)務(wù)功能與與網(wǎng)絡(luò)相關(guān)的功能分離

  • 僅關(guān)注業(yè)務(wù)功能,而無(wú)需擔(dān)心與網(wǎng)絡(luò)相關(guān)的基礎(chǔ)功能,讓服務(wù)網(wǎng)格為你處理

  • 無(wú)需擔(dān)心服務(wù)網(wǎng)格的開(kāi)發(fā),因?yàn)榉?wù)網(wǎng)格基于開(kāi)放標(biāo)準(zhǔn),例如HTTP,TCP,RPC,gRPC等。

結(jié)論

微服務(wù)架構(gòu)由于其優(yōu)于其他架構(gòu)模式的優(yōu)勢(shì),正在積極地控制軟件工程行業(yè)。隨著越來(lái)越多的組織從單體架構(gòu)過(guò)渡到微服務(wù)架構(gòu),作為開(kāi)發(fā)人員,我們需要了解微服務(wù)架構(gòu)中的挑戰(zhàn)并找到解決方法。Service Mesh架構(gòu)解決了微服務(wù)架構(gòu)引入遇到的一些挑戰(zhàn)。

現(xiàn)在我們知道了服務(wù)網(wǎng)格在微服務(wù)架構(gòu)中的作用和重要性,下面讓我們看一下可以在下一次開(kāi)發(fā)活動(dòng)中使用的服務(wù)網(wǎng)格產(chǎn)品/平臺(tái)。Linkerd, Envoy Proxy, Istio, Consul, Kuma和 Open Service Mesh(OSM)是我們可以使用的一些領(lǐng)先的開(kāi)源的Service Mesh平臺(tái)。它們中的大多數(shù)經(jīng)過(guò)了大量測(cè)試,可以投入生產(chǎn)使用。

譯者:王延飛

譯文鏈接:https://dzone.com/articles/the-service-mesh-in-the-microservices-world

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

后臺(tái)回復(fù)"技術(shù)",加入技術(shù)群

【精彩推薦】

  • 超清晰的DNS入門(mén)指南

  • 如何用ELK搭建TB級(jí)的日志系統(tǒng)

  • 深度好文:Linux系統(tǒng)內(nèi)存知識(shí)

  • 日志采集系統(tǒng)都用到哪些技術(shù)?

  • 面試官:為什么HashMap的加載因子是0.75?

  • 原創(chuàng)|OpenAPI標(biāo)準(zhǔn)規(guī)范

  • 如此簡(jiǎn)單| ES最全詳細(xì)使用教程

  • ClickHouse到底是什么?為什么如此牛逼!

  • 原來(lái)ElasticSearch還可以這么理解

點(diǎn)個(gè)贊+在看,少個(gè) bug?????

總結(jié)

以上是生活随笔為你收集整理的微服务的下一步,离不开服务网格的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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