1. 程式人生 > 其它 >spring-cloud核心知識點簡單總結

spring-cloud核心知識點簡單總結

前言

本週,我們圍繞spring cloud常用元件,分享了一些知識點,今天花點時間,簡單回顧總結一下。

本週總分分享了四個核心元件,其中包括註冊中心元件eureka、負載均衡元件ribbon/feign、斷路器元件hystrix以及應用閘道器元件zuul,其中最核心的就是註冊中心eureka,至於原因想必大家都能猜出來,因為其他幾個元件的功能實現基本上都是依賴於eureka展開的,可以說離開了eureka註冊中心,其他元件基本上都無法正常工作了。

回顧總結

今天回顧的方式也是從一張腦圖開始,這張腦圖主要展示了各個元件的啟用流程和步驟,需要腦圖原始檔的小夥伴,公眾號回覆【spring-cloud總結】即可獲取。

內容綱要

註冊中心
eureka
  • 服務端

    • 引入依賴

      spring-cloud-starter-netflix-eureka-server
      
    • 啟用元件

      @EnableEurekaServer
      
    • 核心配置

      • 註冊伺服器主機名稱

        eureka.instance.hostname
        
      • 是否註冊給服務中心

        eureka.client.register-with-eureka
        
      • 是否檢索服務

        eureka.client.fetch-registry
        
      • 治理客戶端服務域

        eureka.client.service-url.defaultZone
        
eureka客戶端
  • 服務發現/註冊

    • 引入依賴

      spring-cloud-starter-netflix-eureka-client
      
    • 啟用元件

      • 低版本需要啟用

        @EnableDiscoveryClient
        
    • 核心配置

      • 同服務端,通常我們只配置註冊中心的地址

        eureka.client.service-url.defaultZone
        
    • 其他

      • 如果需要spring cloud監測服務執行狀態,需要引入監控元件

        spring-boot-starter-actuator
        
負載均衡
ribbon
  • 引入依賴

    spring-cloud-starter-netflix-ribbon
    
    • 引入eureka客戶端元件及配置
  • 注入RestTemplate

    • 在注入RestTemplate時,在例項方法上加上負載均衡註解

      @LoadBalanced
      
  • 通過RestTemplate訪問相關訪問

    • 訪問服務時需要指定服務id
feign
  • 宣告式呼叫

    • 引入依賴

      spring-cloud-starter-openfeign
      
    • 引入eureka客戶端元件及配置

    • 啟用元件

      @EnableFeignClients
      
    • 宣告目標服務介面

      • 指定服務id

        @FeignClient("user-service")
        
      • 指定介面

        • @GetMapping("/user/{id}")
          
        • 方法入參

    • 注入宣告介面,並呼叫

閘道器
zuul
  • 核心依賴

     spring-cloud-starter-netflix-zuul
    
  • 引入eureka客戶端元件及配置

  • 啟用元件

    @EnableZuulProxy
    
  • 服務訪問

    • 通過應用閘道器訪問所有服務
    • 訪問地址:應用閘道器服務地址+服務註冊id + 介面地址
  • 擴充套件知識

    • 配置訪問規則

      zuul.routes.product-service.path
      
    • 配置服務地址

      zuul.routes.product-service.url
      
    • 指定服務id

      zuul.routes.product-service.service-id
      
熔斷器
hystrix
  • 核心依賴

    spring-cloud-starter-netflix-hystrix
    
  • 啟用組

     @EnableCircuitBreaker
    
  • 介面啟用熔斷機制

    • 對應方法增加@HystrixCommand註解

      • 可以在註解中指定熔斷回撥方法

        @HystrixCommand(fallbackMethod = "error")
        
      • 可以設定熔斷相關配置

        • 超時時間
hystrix-dashboard
  • 核心依賴

    spring-cloud-starter-netflix-hystrix-dashboard
    
  • 啟用元件

    @EnableHystrixDashboard
    
  • 新增監控主機

    • 客戶端引入actuator監控元件

    • 新增主機地址

      • turbine叢集

        https://turbine-hostname:port/turbine.stream
        
      • turbine叢集中某一個節點

        https://turbine-hostname:port/turbine.stream?cluster=[clusterName]
        
      • 單節點

        https://hystrix-app:port/actuator/hystrix.stream
        

總結

好了,回顧總結就到這裡,今天主要是把之前的知識點過一遍,加深下相關知識的印象,如果還有小夥伴已經忘記了,可以點選下面相關知識的連結進行回顧: