題目起的有點太大,寫本文的主要目的,還是想將自己實際應用過程中,遇到的問題及解決方法,做一個總結,並系統梳理一下微服務框架Spring cloud的應用過程,以備後續複習查詢。

Spring cloud包含一些列的子專案,比如配置管理(Spring Cloud Config)、服務發現(Netflix Eureka)、斷路器(Netflix Hystrix)、動態路由(Netflix zuul)、控制中線(Spring Cloud Bus)等等,使得開發者能夠快速建構自己的服務和應用。本文主要描述Spring Cloud的主要特性,並詳細記錄實踐過程、遇到問題及解決方法。

首先,說明一下本人使用軟體版本:

  • 作業系統:win10 64位
  • jdk:1.8.0_73 64位
  • idea: Intellij IDEA 2017.2
  • maven: 3.5.0
  • org.springframework.boot: 2.X(idea整合Spring Initializr,可以快速搭建Spring Boot專案,實踐過程中發現,每次 建立的 Spring Boot專案,org.springframework.boot版本會有所不同)
  • Spring Cloud:Finchley.SR2

具體專案及子專案規劃如下:

專案 springlearn spring cloud專案實踐
編號 模組名稱 描述 埠號
模組1 eurekaserver 服務註冊中心,提供服務註冊功能 8080
模組2 eurekaclient 服務提供者,註冊服務到服務註冊中心 8081
模組3 eurekaclient 服務提供者,註冊服務到服務註冊中心 8082
模組4 configserver 配置中心,提供配置檔案的統一管理 8090
模組5 ribbonservice 負載均衡,使用Ribbon實現客戶端的負載均衡,並通過Hystrix實現斷路器及斷路器儀表盤Hystrix Dashboard的使用 8091
模組6 feignservice 負載均衡,用宣告式Rest客戶端呼叫遠端服務實現負載均衡,並通過Hystrix實現斷路器及斷路器儀表盤Hystrix Dashboard的使用 8092
模組7 zuulservice 路由閘道器,通過zuul實現路由和過濾 8093

後續將分成6個篇章,依次描述Spring Cloud的實踐過程,為了便於感興趣的小夥伴參考,依次完成Spring cloud專案的搭建工作,後續篇章將按照下列順序進行描述。

(一)Spring Cloud實踐: 使用Netflix Eureka實現服務註冊與發現

(二)Spring Cloud實踐:使用Spring Cloud Config實現分散式配置管理

(三)Spring Cloud實踐:使用Netflix Ribbon實現負載均衡

(四)Spring Cloud實踐:使用Feign實現負載均衡

(五)Spring Cloud實踐:使用Netflix hystrix實現斷路器,並使用Netflix hystrix dashboard實現監控

(六)Spring Cloud實踐:使用Netflix Zuul實現路由和過濾