1、spring cloud簡介web
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的開發便利性巧妙地簡化了分佈式系統基礎設施的開發,如服務發現註冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,均可以用Spring Boot的開發風格作到一鍵啓動和部署。Spring Cloud並無重複製造輪子,它只是將目前各家公司開發的比較成熟、經得起實際考驗的服務框架組合起來,經過Spring Boot風格進行再封裝屏蔽掉了複雜的配置和實現原理,最終給開發者留出了一套簡單易懂、易部署和易維護的分佈式系統開發工具包。spring
2、建立服務註冊中心瀏覽器
咱們須要用的的組件上Spring Cloud Netflix的Eureka ,eureka是一個服務註冊和發現模塊。springboot
一、建立一個web-app的maven工程。此處命名爲:springcloud網絡
二、在該工程下建立module。架構
紅框內爲已經註冊的服務。這裏咱們只有服務中心,沒有寫生產者,因此紅框中的內容應該是空。app
建立的過程如server同樣便可。負載均衡
一、建立完成以後檢查一下pom文件,這裏提供依賴以下:框架
這裏爲了方便測試,直接使用@RestController獲取返回值。maven
四、運行服務,登錄環境 http://localhost:8765/hi?name=fys
能夠看到以下信息。這裏用postman進行測試:
1.1 方式一:服務消費者(rest+ribbon) 一、建立消費者modul,流程如上述工程建立流程。
二、引入pom依賴
斷路器依賴在此章節中能夠不須要引入。
在工程的配置文件指定服務的註冊中心地址爲http://localhost:8761/eureka/ 。
例如:
service-hi中的返回以下:
測試結果以下:
在微服務架構中,根據業務來拆分紅一個個的服務,服務與服務之間能夠相互調用(RPC),在Spring Cloud能夠用RestTemplate+Ribbon和Feign來調用。爲了保證其高可用,單個服務一般會集羣部署。因爲網絡緣由或者自身的緣由,服務並不能保證100%可用,若是單個服務出現問題,調用這個服務就會出現線程阻塞,此時如有大量的請求涌入,Servlet容器的線程資源會被消耗完畢,致使服務癱瘓。服務與服務之間的依賴性,故障會傳播,會對整個微服務系統形成災難性的嚴重後果,這就是服務故障的「雪崩」效應。爲了解決這個問題,業界提出了斷路器模型。
Netflix開源了Hystrix組件,實現了斷路器模式,SpringCloud對這一組件進行了整合。
在微服務架構中,一個請求須要調用多個服務是很是常見的,以下圖:
首先。須要引入斷路器的pom依賴: