最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2021年05月18日 10:15:15   作者:華為云開發(fā)者社區(qū)  
本文介紹了基于開源自建和適配云廠商開發(fā)框架兩種構(gòu)建多云架構(gòu)的思路,以及這些思路的優(yōu)缺點

微服務(wù)生態(tài)

微服務(wù)生態(tài)本質(zhì)上是一種微服務(wù)架構(gòu)模式的實現(xiàn),包括微服務(wù)開發(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è)施包括:注冊中心、配置中心、應(yīng)用網(wǎng)關(guān)。此外,分布式事物管理、計劃任務(wù)、調(diào)用鏈跟蹤系統(tǒng)等也是微服務(wù)基礎(chǔ)設(shè)施的組成部分。完整的微服務(wù)基礎(chǔ)實施還包括開發(fā)使能工具,包括接口管理工具、灰度發(fā)布管理、代碼生成等,這部分主要由云廠商提供,比較少開源方案。

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

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

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

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

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

多云微服務(wù)架構(gòu)的兩種方案

采用開源微服務(wù)框架

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

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

下面對開源解決方案的評估點做一個總結(jié):

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

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

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

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

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

* application-core

* application-runtime-servicecomb

* application-runtime-hsf

下面對適配多供應(yīng)商開發(fā)框架方案的評估點做一個總結(jié):

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

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

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

以上就是詳解多云架構(gòu)下的JAVA微服務(wù)技術(shù)解析的詳細內(nèi)容,更多關(guān)于多云架構(gòu)下的JAVA微服務(wù)技術(shù)解析的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Java利用Sping框架編寫RPC遠程過程調(diào)用服務(wù)的教程

    Java利用Sping框架編寫RPC遠程過程調(diào)用服務(wù)的教程

    這篇文章主要介紹了Java利用Sping框架編寫RPC遠程過程調(diào)用服務(wù)的教程,包括項目管理工具Maven的搭配使用方法,需要的朋友可以參考下
    2016-06-06
  • Java線程中的interrupt方法解讀

    Java線程中的interrupt方法解讀

    這篇文章主要介紹了Java線程中的interrupt方法解讀,Java中的interrupt是一種線程間通信的機制,用于請求中斷線程的執(zhí)行。當一個線程調(diào)用另一個線程的interrupt()方法時,被調(diào)用線程會收到一個中斷信號,可以根據(jù)需要做出相應(yīng)的處理,需要的朋友可以參考下
    2023-10-10
  • Java使用設(shè)計模式中迭代器模式構(gòu)建項目的代碼結(jié)構(gòu)示例

    Java使用設(shè)計模式中迭代器模式構(gòu)建項目的代碼結(jié)構(gòu)示例

    這篇文章主要介紹了Java使用設(shè)計模式中迭代器模式構(gòu)建項目的代碼結(jié)構(gòu)示例,迭代器模式能夠?qū)υL問者隱藏對象的內(nèi)部細節(jié),需要的朋友可以參考下
    2016-05-05
  • Java簡單統(tǒng)計字符串中漢字,英文字母及數(shù)字數(shù)量的方法

    Java簡單統(tǒng)計字符串中漢字,英文字母及數(shù)字數(shù)量的方法

    這篇文章主要介紹了Java簡單統(tǒng)計字符串中漢字,英文字母及數(shù)字數(shù)量的方法,涉及java針對字符串的遍歷、編碼轉(zhuǎn)換、判斷等相關(guān)操作技巧,需要的朋友可以參考下
    2017-06-06
  • 解讀動態(tài)數(shù)據(jù)源dynamic-datasource-spring-boot-starter使用問題

    解讀動態(tài)數(shù)據(jù)源dynamic-datasource-spring-boot-starter使用問題

    這篇文章主要介紹了解讀動態(tài)數(shù)據(jù)源dynamic-datasource-spring-boot-starter使用問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 淺談Java注解和動態(tài)代理

    淺談Java注解和動態(tài)代理

    這篇文章主要介紹了Java中有關(guān)注解和動態(tài)代理的一些知識,涉及了Annotation、數(shù)據(jù)類型等相關(guān)內(nèi)容,需要的朋友可以參考下。
    2017-09-09
  • Java自動拆箱空指針異常的解決

    Java自動拆箱空指針異常的解決

    這篇文章主要介紹了Java自動拆箱空指針異常的解決,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • Spring cloud alibaba之Gateway網(wǎng)關(guān)功能特征詳解

    Spring cloud alibaba之Gateway網(wǎng)關(guān)功能特征詳解

    spring cloud gateway是spring cloud推出的第二代網(wǎng)關(guān),是由WebFlux+Netty+Reactor實現(xiàn)的響應(yīng)式的API網(wǎng)關(guān),它不能在傳統(tǒng)的servlet容器中工作,也不能構(gòu)建成war包,接下來通過本文給大家分享Spring cloud alibaba--Gateway網(wǎng)關(guān),需要的朋友可以參考下
    2021-08-08
  • 詳解Nacos中注冊中心和配置中心的實現(xiàn)

    詳解Nacos中注冊中心和配置中心的實現(xiàn)

    Spring?Cloud?Alibaba?是阿里巴巴提供的一站式微服務(wù)開發(fā)解決方案。而?Nacos?作為?Spring?Cloud?Alibaba?的核心組件之一,提供了兩個非常重要的功能:注冊中心和配置中心,我們今天來了解和實現(xiàn)一下二者
    2022-08-08
  • 使用java采集京東商城區(qū)劃數(shù)據(jù)示例

    使用java采集京東商城區(qū)劃數(shù)據(jù)示例

    這篇文章主要介紹了java采集京東的全國區(qū)劃數(shù)據(jù)示例,保存成json形式,如想轉(zhuǎn)換到數(shù)據(jù)庫只需反序列化為對象保存到數(shù)據(jù)庫即可
    2014-03-03

最新評論

南宫市| 资讯 | 常山县| 思茅市| 喜德县| 北海市| 丹寨县| 太康县| 广宗县| 新建县| 商丘市| 全南县| 镇原县| 屏东县| 江孜县| 兖州市| 礼泉县| 堆龙德庆县| 阳泉市| 河西区| 凌云县| 湟源县| 宣武区| 德阳市| 定陶县| 沈丘县| 镇沅| 民勤县| 洞口县| 哈密市| 蒙城县| 区。| 多伦县| 定南县| 米林县| 三河市| 安宁市| 仙游县| 沂水县| 招远市| 兴化市|