Spring Cloud(2.0)能力大致列表


微服務九大特性

出自Martin Fowler的《Microservices》

  1. 服務組件化
  2. 按業務組織團隊
  3. 做“產品”的態度
  4. 智能端點與啞管道
  5. 去中心化治理
  6. 去中心化管理數據
  7. 基礎設施自動化
  8. 容錯設計
  9. 演進式設計

Spring Boot特性

  1. 支持main方法直接拉起嵌入式web容器
  2. 本地配置方式更友好,支持占位符 支持profile,支持啟動參數覆蓋等,支持自動配置
  3. 支持自動裝配等

Eureka的特性

  1. 服務發現的server與client,即支持注冊與發現能力。
  2. 高可用,可以兩個(或以上)節點相互備份,通過eureka.client.serviceUrl.defaultZone配置其他兩個節點的url。server既是server也是client。
  3. 通過注解啟用注冊中心server端能力 EnableEurekaServer
  4. 需要注冊的provider端只要在classpath下放spring-cloud-starter-netflix-eureka-client相關依賴,那么provider就可以自動注冊到eureka注冊中心。當然了需要在配置文件中配置eureka服務的url地址,配置項的key是eureka.client.serviceUrl.defaultZone。
  5. server支持配置多長時間掃描一次失效服務
  6. client端支持配置多長時間給server發一次心跳,支持配置多長時間沒有收到心跳就移除服務列表
  7. 注冊與發現時支持密碼鑒權
  8. 支持多注冊中心分組

Ribbon特性

  1. 客戶端負載均衡器,客戶端自己維護要訪問的服務端清單,比如來自於注冊中心
  2. 提供spring-cloud-starter-netflix-ribbon artifact ID 用於引入ribbon
  3. 提供ribbon+RestTemplate的客戶端負載均衡方式,那當然也提供了客戶端。
  4. 用心跳去維護服務端清單的健康行,支持彈性失敗
  5. 多種可插拔負載均衡規則: 輪詢,隨機,區域感知輪詢,響應時間權重,具體參加com.netflix.loadbalancer.IRule的實現
  6. 支持ribbon.MaxAutoRetries 最大重試次數配置
  7. 支持配置是否所有操作都能重試
  8. 支持配置 刷新服務端列表的時間
  9. 支持配置讀超時 與 連接超時 (針對HttpClient)
  10. 支持配置初始化的服務端列表
  11. 支持自定義RibbonClient
  12. 支持自定義負載均衡策略
    Netflix ribbon自己的wiki寫的更清晰一些。

Hystrix特性

  1. 支持用spring-cloud-starter-netflix-hystrix 和 EnableCircuitBreaker 注解完成hystrix引入
  2. 支持指定fallBack時的方法,方法參數與服務方法參數相同(也就是支持參數傳遞)
  3. 支持 全局默認配置 動態全局配置 實例默認配置 實例動態配置 四個層次的配置覆蓋能力
  4. 支持用execution.isolation.strategy配置隔離策略,支持線程(默認)和信號量方式的隔離
  5. 支持用execution.isolation.thread.timeoutInMilliseconds指定線程執行多長時間超時然后出發fallback,默認值1000ms
  6. 支持用execution.timeout.enabled配置是否需要啟用線程執行超時機制,默認true
  7. 支持用execution.isolation.thread.interruptOnTimeout指定線程執行超時后是否終端,默認是true
  8. 支持用execution.isolation.thread.interruptOnCancel指定取消發生時是否要終端線程,默認false
  9. 支持用execution.isolation.semaphore.maxConcurrentRequests配置信號量模式下的最大並發請求數,默認10
  10. 支持fallback.isolation.semaphore.maxConcurrentRequests在信號量模式下callback最大並發請求數, 默認10
  11. 支持用fallback.enabled 指定是否啟用fallback,默認true
  12. 支持用circuitBreaker.enabled 指定是否啟用斷路器 默認true
  13. 支持用circuitBreaker.requestVolumeThreshold配置 一個滑動窗口內 多少個請求失敗后再啟用斷路器,默認是20
  14. 支持用circuitBreaker.sleepWindowInMilliseconds配置斷路器被觸發后生效多少時間,默認5s
  15. 支持用circuitBreaker.errorThresholdPercentage 配置失敗百分比達到多少時啟用斷路器並觸發fallback邏輯
  16. 支持用circuitBreaker.forceOpen配置在所有服務失敗時是否強制開啟斷路器,默認是false
  17. 支持用metrics.rollingStats.timeInMilliseconds配置時間窗口時長(斷路器要根據單位時間內的失敗數量或者比率來決定是否啟用),默認10s
  18. 支持用metrics.rollingStats.numBuckets設置桶的數量,默認是10
  19. 支持用requestCache.enabled配置是否啟用緩存,在command有getCacheKey() 方法是默認啟用此特性。 用@CacheResult注解配合@HystrixCommand注解可以開啟緩存,默認是所有方法參數作為key,也可以通過cacheKeyMethod制定getkey方法,也可以使用@CacheKey注解加載服務方法的參數上作為緩存的key,用@CacheRemove注解關閉緩存。 可以參見這里
  20. 支持請求合並。 支持maxRequestsInBatch配置合並批次中的請求數。 支持timerDelayInMilliseconds配置延遲時間,默認10ms。
  21. 支持線程池相關屬性配置。
    21.支持dashboard
    所有的詳細配置可參見這里這里

Feign特性

  1. 支持用定義接口的方式替換了寫代碼實現遠程client調用的代碼
  2. 支持從請求header中拿參數作為調用遠程服務的請求參數
  3. 支持用ribbon和hystrix實現負載均衡與服務降級
  4. 支持client的日志級別配置

Zuul特性

  1. 支持轉發,支持轉發路由規則配置
  2. 支持請求過濾,ZuulFilter,自帶了多種實現
  3. 支持動態路由配置,需要配合spring cloud使用
  4. 支持動態過濾器,groovy腳本

config特性

  1. 可以對接git、svn、本地文件存儲
  2. 支持高可用,用eureka或者config server都指向同一git倉庫
  3. 支持配置項加密,支持密鑰配置
  4. 支持動態刷新配置


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM