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