一、什么是SpringCloud?
SpringCloud是一系列框架的集合。它利用了SpringBoot的便攜性對分布式的基礎組件進行開發,
例如注冊中心(Eureka),配置中心(Config),消息總線(Bus),負載均衡(Ribbon),
智能路由/網關(Zuul),熔斷器(Hystrix),數據監控(Hystrix Dashboard)等,
都可以使用SpringBoot風格進行開發配置並一鍵啟動和部署。
二、優缺點
1、優點:
- 出身Spring家族,背景強大
- 組件豐富,功能齊全
- 微服務是跨平台的,適用於任何語言
- 服務拆分較細,耦合度低
2、缺點
- 微服務過多,治理成本高
- 分布式系統開發成本高
- 學習成本高
三、整體架構
四、SpringBoot和SpringCloud的關系
SpringBoot專注於單個微服務開發,SpringCloud則是對微服務系統整體進行 管理和協調。
SpringBoot可以離開SpringCloud單獨開發,而SpringCloud則 依賴於SpringBoot。
五、使用SpringBoot開發微服務面臨的問題
1、分布式系統的復雜性---包括帶寬問題、安全問題、延遲問題等
2、服務發現問題---如何注冊服務,如何查找並連接已注冊服務的問題
3、冗余---分布式系統中的冗余問題
4、負載均衡---如何分配各種資源的合理使用問題
5、性能---如何在各種服務運營時保證性能 6、部署的復雜性問題
六、服務注冊和發現是什么?SpingCloud如何實現?
在一個SpringCloud項目中會有多個微服務,每個微服務之間通過API相互調用 ,當其中有微服務API發生改變時調用方也需要作出改變,因此需要一個服務用 來保存各個微服務的API信息,當其他服務需要調用時從該服務中查找所需服務 API即可。 在SpringCloud中是通過Eureka實現服務注冊與發現。
七、SpringCloud和Dubbo的區別
- Dubbo服務調用方式是RPC,SpringCloud的調用方式是Restful風格的API
- 注冊中心:Dubbo是Zookeeper,SpringCloud是Eureka,也可以是Zookeeper
- Dubbo很多服務自己沒有實現,通過整合第三方實現功能,SpringCloud有完善的服務體系
八、負載均衡的意義是什么?
負載平衡旨在優化資源使用,最大化吞吐量,最小化響應時間,避免單一資源過載。
九、什么是Hystrix?它是如何實現容錯的?
Hystrix是一個延遲和容錯庫,當出現故障不可避免時,停止級聯故障在復雜的 分布式系統中實現彈性。 容錯實現方式:在服務提供方使用Hystrix並定義Fallback方法,當正常服務出 現異常時則會執行Fallback方法。Fallback方法應和公開的服務方法返回相同 數據類型。
十、什么是SpringCloud Bus?
Bus通常和Config一起使用,當配置文件修改時,用到該配置文件的服務需要 重新刷新獲取最新配置信息,如果服務太多則太多繁瑣。因此可已通過Bus將各 個服務之間連接起來,可以用於廣播配置文件的更改和服務的監控和管理。
十一、什么是SpringCloud Feign?
Feign是Spring Cloud組件中一個輕量級RESTful的HTTP服務客戶端,Feign內置了Ribbon,用來做客戶端負載均衡,去調用服務注冊中心的服務。
十二、SpringCloud熔斷器作用?
當一個服務調用另一個服務時,由於網絡或自身原因,調用者就會等待被調用者 響應消息,當更多的服務請求該資源時就會產生更多的請求等待,從而造成雪崩 效應。
熔斷器完全打開狀態:一段時間內,請求達到一定數量就無法調用,而且多次監測沒有恢復跡象,熔斷器就會完全打開
熔斷器半開狀態:短時間內有恢復跡象,熔斷器會將部分請求發送給該服務,正常調用時熔斷器關閉
熔斷器關閉狀態:當服務一直處於正常狀態,就可以正常調用
十三、什么是SpringCloud Config?
由於分布式系統中配,由於服務數量多,為了方便服務的配置文件統一管理,實時更新,所以需要分布式配置中心服務。
配置文件可以放在本地,也可以放在git倉庫。
十四、什么是SpringCloud Gateway?
Spring Cloud Gateway是Spring Cloud官方推出的第二代網關框架,取代 Zuul網關。網關在微服務系統中有着非常重要作用,網關常見的功能 有路由轉發、權限校驗、限流控制等作用。 使用了一個RouteLocatorBuilder的bean去創建路由,除了創建路由 RouteLocatorBuilder可以讓你添加各種predicates和filters,predicates斷 言的意思,顧名思義就是根據具體的請求的規則,由具體的route去處理, filters是各種過濾器,用來對請求做各種判斷和修改。