av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

詳解多云架構(gòu)下的JAVA微服務(wù)技術(shù)解析

瀏覽:3日期:2022-08-12 14:59:10
目錄微服務(wù)生態(tài)多云微服務(wù)架構(gòu)的兩種方案采用開(kāi)源微服務(wù)框架適配多供應(yīng)商開(kāi)發(fā)框架微服務(wù)生態(tài)

微服務(wù)生態(tài)本質(zhì)上是一種微服務(wù)架構(gòu)模式的實(shí)現(xiàn),包括微服務(wù)開(kāi)發(fā)SDK,以及微服務(wù)基礎(chǔ)設(shè)施。

目前比較成熟的 JAVA 微服務(wù)生態(tài)包括 servicecomb(華為), spring-cloud (Pivotal), dubbo(阿里), tsf(騰訊)等。gRPC、Thrift 等也用于內(nèi)部服務(wù)之間的通信,但是微服務(wù)基礎(chǔ)設(shè)施比較欠缺。

核心的微服務(wù)基礎(chǔ)設(shè)施包括:注冊(cè)中心、配置中心、應(yīng)用網(wǎng)關(guān)。此外,分布式事物管理、計(jì)劃任務(wù)、調(diào)用鏈跟蹤系統(tǒng)等也是微服務(wù)基礎(chǔ)設(shè)施的組成部分。完整的微服務(wù)基礎(chǔ)實(shí)施還包括開(kāi)發(fā)使能工具,包括接口管理工具、灰度發(fā)布管理、代碼生成等,這部分主要由云廠商提供,比較少開(kāi)源方案。

微服務(wù)生態(tài)的核心是 SDK,而 SDK 的核心是 RPC 框架,這個(gè)是不同微服務(wù)生態(tài)的本質(zhì)區(qū)別。在基礎(chǔ)設(shè)施方面,不同的微服務(wù)生態(tài)是可以相互選擇的,比如 spring-cloud 生態(tài)可以采用 spring-cloud-huawei 接入servicecomb 提供的注冊(cè)中心 servicecomb-service-center、配置中心 servicecomb-kie,也可以通過(guò) spring-cloud-alibaba 接入阿里的配置中心;servicecomb 也可以通過(guò)引入擴(kuò)展,使用其他的配置中心。一些基礎(chǔ)的開(kāi)發(fā)組件,比如 spring、spring boot,這些微服務(wù)開(kāi)發(fā) SDK 都支持集成。

詳解多云架構(gòu)下的JAVA微服務(wù)技術(shù)解析

對(duì)微服務(wù)生態(tài)進(jìn)行比較是一個(gè)很難的課題。下面的表格僅對(duì)一些核心功能進(jìn)行比較。使能工具、核心基礎(chǔ)設(shè)施、可選基礎(chǔ)設(shè)施等方面,不同的微服務(wù)生態(tài)是可以相互使用的,這里的比較只針對(duì)該生態(tài)原生提供的來(lái)說(shuō),并不代表某個(gè)微服務(wù)生態(tài)缺少這塊功能,該生態(tài)的開(kāi)發(fā)者用不了這方面的能力。對(duì)于開(kāi)源生態(tài)應(yīng)該采用一個(gè)大生態(tài)的眼光來(lái)看待,每個(gè)生態(tài)的設(shè)計(jì)者也會(huì)盡可能融入其他生態(tài),繼承和復(fù)用其他生態(tài)的能力。但是在商業(yè)選型上,需要考慮技術(shù)支持等因素。

詳解多云架構(gòu)下的JAVA微服務(wù)技術(shù)解析

對(duì)微服務(wù)生態(tài)的比較的另外一個(gè)視角就是如何構(gòu)建微服務(wù)應(yīng)用架構(gòu)。 一般的微服務(wù)應(yīng)用架構(gòu)會(huì)包括應(yīng)用網(wǎng)關(guān)、業(yè)務(wù)微服務(wù)和靜態(tài)頁(yè)面。靜態(tài)頁(yè)面的部署相對(duì)比較靈活,可以放到應(yīng)用網(wǎng)關(guān)內(nèi)部,也可以放到應(yīng)用網(wǎng)關(guān),還可以放到應(yīng)用網(wǎng)關(guān)外面。其中放到網(wǎng)關(guān)里面的方式最靈活,比如可以通過(guò)配置網(wǎng)關(guān)的負(fù)載均衡策略,將請(qǐng)求轉(zhuǎn)發(fā)到用戶(hù)最近的region,也可以對(duì)部分靜態(tài)頁(yè)面進(jìn)行訪問(wèn)控制。

增加應(yīng)用網(wǎng)關(guān)可以增強(qiáng)應(yīng)用系統(tǒng)的彈性,能夠支撐系統(tǒng)的持續(xù)演進(jìn)(參考分析文章),同時(shí)可以結(jié)合網(wǎng)絡(luò)基礎(chǔ)設(shè)施,更好的實(shí)現(xiàn)應(yīng)用系統(tǒng)的能力開(kāi)放。比如如果接入層使用 API Gateway 掛載,可以很好的實(shí)現(xiàn)內(nèi)部系統(tǒng)的能力開(kāi)放和計(jì)費(fèi);使用LVS接入,只可以提高轉(zhuǎn)發(fā)性能,比較適合訪問(wèn)量大的應(yīng)用,接入網(wǎng)關(guān)邏輯少,應(yīng)用網(wǎng)關(guān)可以彈性擴(kuò)容;使用DNS則對(duì)于網(wǎng)站很有用,屏蔽用戶(hù)訪問(wèn)的地址差異,并且可以使用DNS將請(qǐng)求轉(zhuǎn)發(fā)到不同區(qū)域的應(yīng)用網(wǎng)關(guān)。

Servicecomb, spring-cloud 都能夠很好的支持這種架構(gòu),而 dubbo 對(duì)這種架構(gòu)支持的不是很好,很多 dubbo 開(kāi)發(fā)者都是通過(guò)在業(yè)務(wù)服務(wù)之外增加一個(gè)接入層,使用 spring-cloud 的應(yīng)用網(wǎng)關(guān)來(lái)搭建這個(gè)應(yīng)用架構(gòu)。

詳解多云架構(gòu)下的JAVA微服務(wù)技術(shù)解析

多云微服務(wù)架構(gòu)的兩種方案采用開(kāi)源微服務(wù)框架

很多業(yè)務(wù)系統(tǒng)的構(gòu)建,都是從選擇一個(gè)開(kāi)源方案開(kāi)始。 一般會(huì)首先選擇一個(gè)微服務(wù)開(kāi)發(fā) SDK, 然后選擇其他的微服務(wù)基礎(chǔ)設(shè)施。 對(duì)于自主研發(fā)的情況,微服務(wù)基礎(chǔ)設(shè)施也會(huì)選擇開(kāi)源方案。 比如選擇 ServiceComb 微服務(wù)開(kāi)發(fā) SDK 的場(chǎng)景,可以通過(guò)在不同的云上部署開(kāi)源服務(wù),來(lái)實(shí)現(xiàn)一套系統(tǒng),多個(gè)云上運(yùn)行。 云廠商如果存在微服務(wù)基礎(chǔ)設(shè)施的商業(yè)版本, 可以在云上購(gòu)買(mǎi)使用, 使用云產(chǎn)商提供的基礎(chǔ)設(shè)施服務(wù),通??梢越档妥约哼\(yùn)維的成本,并能夠得到更好的性能優(yōu)化和可靠性支持。

詳解多云架構(gòu)下的JAVA微服務(wù)技術(shù)解析

另外一個(gè)開(kāi)源解決方案是部分集成云產(chǎn)商提供的組件,盡可能多的使用云產(chǎn)商的基礎(chǔ)設(shè)施。 比如選擇 Spring Cloud 微服務(wù)解決方案, 可以使用 spring-cloud-huawei, spring-cloud-alibaba 等云產(chǎn)商提供的擴(kuò)展,使用云上的基礎(chǔ)設(shè)施。

詳解多云架構(gòu)下的JAVA微服務(wù)技術(shù)解析

下面對(duì)開(kāi)源解決方案的評(píng)估點(diǎn)做一個(gè)總結(jié):

1. 只需要維護(hù)一套代碼和熟悉一個(gè)開(kāi)發(fā)框架,多云運(yùn)行。不同云的運(yùn)行體驗(yàn)存在差異,可以部分使用云廠商的中間件。 如果其他云沒(méi)有對(duì)應(yīng)的中間件,需要自行安裝和維護(hù)中間件。

2. 微服務(wù)框架選型之前,需要考慮“基礎(chǔ)設(shè)施”是否也開(kāi)源。比如微服務(wù)基礎(chǔ)設(shè)施最重要的中間件“配置中心”、“注冊(cè)中心”和“應(yīng)用網(wǎng)關(guān)”。開(kāi)源可獲得性是一套代碼,多云運(yùn)行的前提。

適配多供應(yīng)商開(kāi)發(fā)框架

每個(gè)云產(chǎn)商都存在一個(gè)主打的微服務(wù)開(kāi)發(fā)框架, 使用主打微服務(wù)開(kāi)發(fā)框架能夠最好使用云產(chǎn)商提供的微服務(wù)基礎(chǔ)設(shè)施。 為了在不同的云上, 獲得最佳的微服務(wù)管理能力,需要盡可能使用對(duì)應(yīng)云的主打框架。 但是維護(hù)多套代碼是困難的。 適配多供應(yīng)商的開(kāi)發(fā)框架, 需要對(duì)核心業(yè)務(wù)做好分離,避免重復(fù)開(kāi)發(fā),然后將適配層做薄,只實(shí)現(xiàn)簡(jiǎn)單適配,降低開(kāi)發(fā)難度。 大部分 JAVA 微服務(wù)開(kāi)發(fā)框架都支持 Spring, 因此可以采用下面的設(shè)計(jì)模式,實(shí)現(xiàn)一套核心代碼,編譯成多個(gè)云產(chǎn)商開(kāi)發(fā)框架的可執(zhí)行程序的多云版本。

詳解多云架構(gòu)下的JAVA微服務(wù)技術(shù)解析

上圖是一個(gè)微服務(wù)的內(nèi)部結(jié)構(gòu),一個(gè)微服務(wù)可能包含如下幾個(gè)目錄:

* application-core

* application-runtime-servicecomb

* application-runtime-hsf

下面對(duì)適配多供應(yīng)商開(kāi)發(fā)框架方案的評(píng)估點(diǎn)做一個(gè)總結(jié):

1. 需要做好業(yè)務(wù)抽象,并熟悉多個(gè)開(kāi)源微服務(wù)開(kāi)發(fā)框架,相對(duì)于開(kāi)源自建方案維護(hù)成本高。

2. 不需要考慮自行安裝和維護(hù)基礎(chǔ)中間件的問(wèn)題,云廠商自己的微服務(wù)框架,一般針對(duì)這個(gè)框架提供了各種中間件支持,使用和接入開(kāi)發(fā)成本低。

3. 這種方案是優(yōu)秀代碼架構(gòu)設(shè)計(jì)。在開(kāi)源方案中,也建議做好核心業(yè)務(wù)邏輯分離和接口抽象,每個(gè)方案適配不同云廠商非微服務(wù)基礎(chǔ)設(shè)施(比如數(shù)據(jù)庫(kù)、對(duì)象存儲(chǔ)、EI等功能)也都是需要的。

以上就是詳解多云架構(gòu)下的JAVA微服務(wù)技術(shù)解析的詳細(xì)內(nèi)容,更多關(guān)于多云架構(gòu)下的JAVA微服務(wù)技術(shù)解析的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 国产一级电影在线观看 | 亚洲欧洲日韩 | 精品国产乱码久久久久久88av | 日韩中文一区 | 久热精品在线观看视频 | 国产精品一区二区免费看 | 亚洲一区二区久久 | 色婷婷久久久久swag精品 | 中文字幕在线三区 | 国产精品99久久久久久久vr | 91在线精品视频 | 久草中文在线观看 | 成人欧美一区二区三区在线观看 | 国产成人精品999在线观看 | 国产99久久精品 | 日韩一区不卡 | 国产视频一区二区在线观看 | 午夜视频在线观看网址 | 99re在线视频观看 | 免费看爱爱视频 | 一区二区电影 | 日本a网站 | 久久久久久国产精品mv | 伊人99| 久在线精品视频 | 国产偷录叫床高潮录音 | 九九久久久 | 久久综合久久综合久久 | 亚洲精品久久久一区二区三区 | 欧州一区二区 | 99riav3国产精品视频 | 一区二区国产在线 | av一区二区在线观看 | 欧美成人在线网站 | 久久免费大片 | 精品国产乱码 | 亚洲视频中文字幕 | 五月婷婷导航 | 超碰国产在线 | 91亚洲一区 | www.嫩草 |