更新時間:2020-05-04 來源:黑馬程序員 瀏覽量:
在微服務架構中,不同的組件(包括微服務實例、注冊中心和API網關等組件)需要根據不同的情況來選取相應的技術,那么我們可以使用哪些技術呢?
1. 微服務實例的開發(fā)
微服務的開發(fā)可以選用的框架技術有 Spring 團隊的 Spring Boot、Jboss 公司的 WildFly Swarm和Java
EE官方的微服務框架KumuluzEE等。
2. 服務的注冊與發(fā)現(xiàn)
架構中服務的注冊與發(fā)現(xiàn)功能,可以使用的技術有 Spring Cloud Eureka、Apache
Zookeeper、Consul、Etcd和Dubbo等,它們都是用于服務注冊和發(fā)現(xiàn)的技術。
3. 負載均衡
負載均衡可以使用的技術有Spring Cloud Ribbon和Dubbo等。
4. 服務容錯
服務容錯的技術可以選用Hystrix,在Spring Cloud的子項目中包含Spring Cloud Hystrix。
5. API網關
架構中的API網關服務,可以使用的技術有Spring Cloud Zuul、Spring Reactor、Netty或NodeJS等。
6. 分布式配置中心
分布式配置中心可以使用Spring Cloud Config。
7. 調試
微服務應用的測試工作可以使用Swagger。Swagger是當前最受歡迎的REST
API文檔生成工具之一,它提供了強大的頁面測試功能來調試每個RESTful API。
8. 部署
微服務的官方文檔中推薦使用Docker來打包和部署微服務。由于Docker是一個開源的應用容器引擎,具有可移植性強、啟動速度快等特點,所以適合跑一些輕量的應用。
9. 持續(xù)集成
為了實現(xiàn)服務的自動化部署,我們可以通過 Jenkins 搭建自動化部署系統(tǒng),并使用 Docker進行容器化封裝。
在上面的技術選型中,從微服務注冊與發(fā)現(xiàn)、負載均衡、容錯、API網關和分布式配置中心組件的可選技術內,我們都看到了Spring
Cloud的身影。實際上,Spring Cloud的子項目中,已經提供了構建微服務所需的所有解決方案。
為了方便大家學習,并能快速地掌握微服務架構的使用,我們將使用 Spring Boot+Spring Cloud+Docker技術來實現(xiàn)微服務架構。
我們會使用Spring Boot實現(xiàn)微服務實例的開發(fā),使用Spring Cloud Eureka來實現(xiàn)服務的注冊與發(fā)現(xiàn),使用Spring Cloud
Hystrix的斷路器功能來實現(xiàn)服務容錯,使用Spring Cloud Ribbon實現(xiàn)服務間的負載均衡,使用Spring Cloud
Zuul實現(xiàn)服務網關,使用Spring Cloud
Config作為分布式配置中心,使用Swagger對微服務進行測試,并使用Jenkins的持續(xù)集成功能來實現(xiàn)自動化部署。
微服務架構中各個組件的技術選型有很多,對于已經實施過微服務并且項目自成體系的公司來說,Spring
Cloud可能并沒有太大的吸引力,但對于還未實施微服務或項目沒有自成體系的公司來說,Spring Cloud將是一個非常好的選擇。
除了Spring
Cloud之外,Dubbo也是目前國內比較流行的分布式服務框架,它們都具備分布式服務治理相關的功能,都能夠提供服務注冊、發(fā)現(xiàn)、路由和負載均衡的能力。相比之下,Spring
Cloud提供了更加完整的一套企業(yè)級分布式云應用的解決方案,包含了微服務組件中的方方面面,并能夠結合Spring
Boot、Docker實現(xiàn)快速開發(fā)的目的,而Dubbo只有Spring
Cloud的一部分功能。由于二者具體的實現(xiàn)方式不同,因此并沒有好壞之分。企業(yè)在選用時,需根據自身情況選擇。推薦了解黑馬程序員java中級程序員培訓課程。
猜你喜歡: