首頁(yè)新聞動(dòng)態(tài)正文

微服務(wù)架構(gòu)的技術(shù)選型你知道怎么選嗎?【Java培訓(xùn)】

更新時(shí)間:2020-05-04 來(lái)源:黑馬程序員 瀏覽量:

1577370495235_學(xué)IT就到黑馬程序員.gif


在微服務(wù)架構(gòu)中,不同的組件(包括微服務(wù)實(shí)例、注冊(cè)中心和API網(wǎng)關(guān)等組件)需要根據(jù)不同的情況來(lái)選取相應(yīng)的技術(shù),那么我們可以使用哪些技術(shù)呢?

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

微服務(wù)的開(kāi)發(fā)可以選用的框架技術(shù)有 Spring 團(tuán)隊(duì)的 Spring Boot、Jboss 公司的 WildFly Swarm和Java EE官方的微服務(wù)框架KumuluzEE等。

2. 服務(wù)的注冊(cè)與發(fā)現(xiàn)

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

3. 負(fù)載均衡

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

4. 服務(wù)容錯(cuò)

服務(wù)容錯(cuò)的技術(shù)可以選用Hystrix,在Spring Cloud的子項(xiàng)目中包含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)用的測(cè)試工作可以使用Swagger。Swagger是當(dāng)前最受歡迎的REST API文檔生成工具之一,它提供了強(qiáng)大的頁(yè)面測(cè)試功能來(lái)調(diào)試每個(gè)RESTful API。

8. 部署

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

9. 持續(xù)集成

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

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

1588576190695_微服務(wù)技術(shù)選型.png


為了方便大家學(xué)習(xí),并能快速地掌握微服務(wù)架構(gòu)的使用,我們將使用 Spring Boot+Spring Cloud+Docker技術(shù)來(lái)實(shí)現(xiàn)微服務(wù)架構(gòu)。

我們會(huì)使用Spring Boot實(shí)現(xiàn)微服務(wù)實(shí)例的開(kāi)發(fā),使用Spring Cloud Eureka來(lái)實(shí)現(xiàn)服務(wù)的注冊(cè)與發(fā)現(xiàn),使用Spring Cloud Hystrix的斷路器功能來(lái)實(shí)現(xiàn)服務(wù)容錯(cuò),使用Spring Cloud Ribbon實(shí)現(xiàn)服務(wù)間的負(fù)載均衡,使用Spring Cloud Zuul實(shí)現(xiàn)服務(wù)網(wǎng)關(guān),使用Spring Cloud Config作為分布式配置中心,使用Swagger對(duì)微服務(wù)進(jìn)行測(cè)試,并使用Jenkins的持續(xù)集成功能來(lái)實(shí)現(xiàn)自動(dòng)化部署。

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

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

猜你喜歡:

微服務(wù)架構(gòu)中涉及的常見(jiàn)組件有哪些?


分享到:
在線咨詢 我要報(bào)名
和我們?cè)诰€交談!