聊完Spring Boot,咱們來看看Spring Boot最重要的一方面的應用——Spring Cloud。
再聊SpringCloud以前咱們先聊聊微服務。spring
微服務(Micro Service):微服務是一種架構風格,一個大型複雜軟件應用由一個或多個微服務組成。系統中的各個微服務可被 獨立部署,各個微服務之間是 鬆耦合的。每一個微服務僅關注於完成 一件任務並很好地完成該任務。在全部狀況下,每一個任務表明着一個小的業務能力。
說完了什麼是微服務,咱們在開來看Spring Cloud。安全
提到spring Cloud 你們可能覺得他是和雲計算相關的框架。其實不是,Spring Cloud是一套用於微服務的、簡單易懂、易部署和易維護的分佈式系統開發工具包。
它利用Spring Boot的開發便利性巧妙地簡化了分佈式系統基礎設施的開發,如服務發現註冊、配置中心、消息總線、負載均衡、斷路器、數據監控等,均可以用Spring Boot的開發風格作到一鍵啓動和部署。服務器
具體的實現流程以下:架構
假如說用戶但願調用一下微服務A,微服務A又會調用微服務B,微服務B又會去調用微服務C,這時候微服務C出現故障,不能被使用了,若是沒有Hystrix,微服務B全部的調用微服務C的線程都會阻塞,直到把微服務B給拖垮,微服務B一掛,那麼微服務A和微服務Y也就掛了。最後微服務X也掛了。這就是雪崩效應。Hystrix就是用來解決這個問題的,假若有了Hystrix,微服務B在調用微服務C出現問題,線程並不會一直等待,而是直接調用微服務B的一個CallBack的回調方法,直接給微服務A返回一個錯誤消息。再過一段時間以後,微服務B會再次嘗試調用微服務C看微服務C是否已經恢復。這就給了整個微服務的集羣一個自我恢復的能力。負載均衡
固然Spring Cloud不單單隻有這幾個工具,其餘更有用的工具要靠你們本身發掘了。框架