IT培訓-高端面授IT培訓機構(gòu)
          云和教育:云和數(shù)據(jù)集團高端IT職業(yè)教育品牌
          • 國家級
            全民數(shù)字素養(yǎng)與技能培訓基地
          • 河南省
            第一批產(chǎn)教融合型企業(yè)建設(shè)培育單位
          • 鄭州市
            數(shù)字技能人才(碼農(nóng))培養(yǎng)評價聯(lián)盟
          當前位置:
          首頁IT問答正文

          微服務(wù)架構(gòu)中各個組件都需要使用哪些技術(shù)?

          • 發(fā)布時間:
            2022-12-07
          • 版權(quán)所有:
            云和教育
          • 分享:

          在微服務(wù)架構(gòu)中,不同的組件(包括微服務(wù)實例、注冊中心和API網(wǎng)關(guān)等組件)需要根據(jù)不同的情況來選取相應(yīng)的技術(shù),那么我們可以使用哪些技術(shù)呢?本節(jié)將對微服務(wù)架構(gòu)中各個組件可使用的技術(shù)進行簡單介紹。

          1.微服務(wù)實例的開發(fā)

          微服務(wù)的開發(fā)可以選用的框架技術(shù)有Spring 團隊的Spring Boot、Jboss公司的WildFlySwarm 和Java EE官方的微服務(wù)框架KumuluzEE等。2.服務(wù)的注冊與發(fā)現(xiàn)

          架構(gòu)中服務(wù)的注冊與發(fā)現(xiàn)功能,可以使用的技術(shù)有 Spring Cloud Eureka、ApacheZookeeper、Consul、Etcd和Dubbo等,它們都是用于服務(wù)注冊和發(fā)現(xiàn)的技術(shù)。

          3.負載地斯

          負載均衡可以使用的技術(shù)有Spring Cloud Ribbon和Dubbo等。

          4.服務(wù)容錯

          服務(wù)容錯的技術(shù)可以選用Hystrix,在Spring Cloud 的子項目中包含Spring Cloud Hystrix。

          5.API網(wǎng)關(guān)

          架構(gòu)中的API網(wǎng)關(guān)服務(wù),可以使用的技術(shù)有Spring Cloud Zuul、Spring Reactor、Netty或NodeJS等。

          6.分布式配置中心

          分布式配置中心可以使用Spring Cloud Config。

          7.調(diào)試

          微服務(wù)應(yīng)用的測試工作可以使用Swagger。Swagger是當前最受歡迎的REST API文檔生成工具之一,它提供了強大的頁面測試功能來調(diào)試每個RESTful API。

          8.部署

          微服務(wù)的官方文檔中推薦使用Docker來打包和部署微服務(wù)。由于Docker是一個開源的應(yīng)用容器引擎,具有可移植性強、啟動速度快等特點,所以適合跑一些輕量的應(yīng)用。

          9.持續(xù)集成

          為了實現(xiàn)服務(wù)的自動化部署,我們可以通過Jenkins 搭建自動化部署系統(tǒng),并使用Docker進行容器化封裝。

          在上面的技術(shù)選型中,從微服務(wù)注冊與發(fā)現(xiàn)、負載均衡、容錯、API網(wǎng)關(guān)和分布式配置中心組件的可選技術(shù)內(nèi),我們都看到了 Spring Cloud的身影。實際上,Spring Cloud的子項目中,已經(jīng)提供了構(gòu)建微服務(wù)所需的所有解決方案。

          為了方便讀者學習,并能快速地掌握微服務(wù)架構(gòu)的使用,本書將使用 Spring Boot+SpringCloud+Docker技術(shù)來實現(xiàn)微服務(wù)架構(gòu)。書中的主要技術(shù)選型如圖1所示。

          1668668963570_技術(shù)選型.png

          圖1 微服務(wù)架構(gòu)的主要技術(shù)選型

          從圖1中可以看出,我們會使用Spring Boot實現(xiàn)微服務(wù)實例的開發(fā),使用Spring CloudEureka來實現(xiàn)服務(wù)的注冊與發(fā)現(xiàn),使用Spring Cloud Hystrix的斷路器功能來實現(xiàn)服務(wù)容錯,使用Spring Cloud Ribbon實現(xiàn)服務(wù)間的負載均衡,使用Spring Cloud Zuul實現(xiàn)服務(wù)網(wǎng)關(guān),使用Spring Cloud Config作為分布式配置中心,使用Swagger 對微服務(wù)進行測試,并使用Jenkins的持續(xù)集成功能來實現(xiàn)自動化部署。

          微服務(wù)架構(gòu)中各個組件的技術(shù)選型有很多,對于已經(jīng)實施過微服務(wù)并且項目自成體系的公司來說,SpringCloud可能并沒有太大的吸引力,但對于還未實施微服務(wù)或項目沒有自成體系的公司來說,Spring Cloud將是一個非常好的選擇。

          注意:除了Spring Cloud之外,Dubbo也是目前國內(nèi)比較流行的分布式服務(wù)框架,它們都具備分布式服務(wù)治理相關(guān)的功能,都能夠提供服務(wù)注冊、發(fā)現(xiàn)、路由和負載均衡的能力。相比之下,SpringCloud提供了更加完整的一套企業(yè)級分布式云應(yīng)用的解決方案,包含了微服務(wù)組件中的方方面面,并能夠結(jié)合Spring Boor.Docker實現(xiàn)快開發(fā)的目的,而Dubbo只有Spring Cloud的一部分功能。由于二者具體的實現(xiàn)方式不同,因此并沒有好壞之分。企業(yè)在選用時,需根據(jù)自身情況選擇。

          需要注意的是,本書中只是針對Java中微服務(wù)技術(shù)進行的選型,其他開發(fā)語言也有著自己的微服務(wù)技術(shù)棧,在選用時,同樣需要依據(jù)實際情況慎重考慮。