對於SpringCloud來說,首先我們需要認識一些基本的元件,這會讓我們之後的討論和交流更有效率。
元件名字和發音
如果你都不知道別人再說什麼,或者別人都不知道你再講什麼,就很尷尬了。
Eureka [jʊ'ri:kə]
Ribbon [ˈrɪbən]
Feign [fen]
Hystrix [hɪst'rɪks]
Zuul [zulu]
Sleuth [sluθ]
Turbine [ˈtɜ:rbaɪn]
重要元件說明
這裡的說明借用網上一個很6的分類方式來說明。
潤物無聲類和獨挑大樑類。
獨挑大樑,獨自啟動不需要依賴其它元件。
Eureka,服務註冊中心,特性有失效剔除、服務保護。(類似生活中的大堂,登記了整個專案的所有服務)
Dashboard,Hystrix儀表盤,監控叢集模式和單點模式,其中叢集模式需要收集器Turbine配合。(類似生活中的保安監控室)
Zuul,API服務閘道器,功能有路由分發和過濾。(類似交警叔叔,指揮道路交通)
Config,分散式配置中心,支援本地倉庫、SVN、Git、Jar包內配置等模式。(類似規章制度,每個人都從這裡獲取規定配置)
潤物無聲,融合在每個微服務中、依賴其它元件併為其提供服務。
Ribbon,客戶端負載均衡,特性有區域親和、重試機制。(類似nginx)
Hystrix,客戶端容錯保護,特性有服務降級、服務熔斷、請求快取、請求合併、依賴隔離。(怕訪問過於頻繁服務掛了,進行限流,太頻繁的請求就直接拒絕)
Feign,宣告式服務呼叫,本質上就是Ribbon+Hystrix。(用註解的方式進行服務呼叫,程式碼更好看了)
Stream,訊息驅動,有Sink、Source、Processor三種通道,特性有訂閱釋出、消費組、訊息分割槽。
Bus,訊息匯流排,配合Config倉庫修改的一種Stream實現。(用於廣播訊息,一說大家都知道了啦)
Sleuth,分散式服務追蹤,需要搞清楚TraceID和SpanID以及抽樣,如何與ELK整合。(服務多了,呼叫的線路就會很複雜,需要跟蹤來知道你到底是怎麼走的)
總結
SpringCloud元件太多,很多人會覺得學習成本很大,而且即使學到了好像在實際中很難去應用,因為應用場景導致。所以在學習的時候,需要抓住重點,並不是所有元件在一個專案中都會用到的,很多時候我們需要的只是其中必要的部分,有了必要的東西我們就能完成我們所需要的功能,而多數的元件是為了方便很多功能,或者對於後面的業務擴充套件有追求的時候使用的。之後會慢慢更新每個元件的細節使用,以及實際使用的業務場景。
參考部落格:
https://blog.csdn.net/yejingtao703/article/details/78331442
https://blog.csdn.net/forezp/article/details/70148833/