• 周五. 10月 7th, 2022

5G编程聚合网

5G时代下一个聚合的编程学习网

热门标签

spring-cloud核心知识点简单总结

admin

11月 28, 2021

前言

本周,我们围绕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
        

总结

好了,回顾总结就到这里,今天主要是把之前的知识点过一遍,加深下相关知识的印象,如果还有小伙伴已经忘记了,可以点击下面相关知识的链接进行回顾:

发表回复

您的电子邮箱地址不会被公开。