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

共 4062字,需浏览 9分钟

 ·

2021-08-09 02:30







前言


本周,我们围绕spring cloud常用组件,分享了一些知识点,今天花点时间,简单回顾总结一下。


本周总分分享了四个核心组件,其中包括注册中心组件eureka、负载均衡组件ribbon/feign、断路器组件hystrix以及应用网关组件zuul,其中最核心的就是注册中心eureka,至于原因想必大家都能猜出来,因为其他几个组件的功能实现基本上都是依赖于eureka展开的,可以说离开了eureka注册中心,其他组件基本上都无法正常工作了。


回顾总结


今天回顾的方式也是从一张脑图开始,这张脑图主要展示了各个组件的启用流程和步骤,需要脑图源文件的小伙伴,公众号回复【spring-cloud总结】即可获取。





内容纲要


注册中心

eureka




  • 服务端






    • 注册服务器主机名称


      eureka.instance.hostname




    • 是否注册给服务中心


      eureka.client.register-with-eureka




    • 是否检索服务


      eureka.client.fetch-registry




    • 治理客户端服务域


      eureka.client.service-url.defaultZone






    • 引入依赖


      spring-cloud-starter-netflix-eureka-server




    • 启用组件


      @EnableEurekaServer




    • 核心配置





eureka客户端




  • 服务发现/注册






    • 如果需要spring cloud监测服务运行状态,需要引入监控组件


      spring-boot-starter-actuator






    • 同服务端,通常我们只配置注册中心的地址


      eureka.client.service-url.defaultZone






    • 低版本需要启用


      @EnableDiscoveryClient






    • 引入依赖


      spring-cloud-starter-netflix-eureka-client




    • 启用组件





    • 核心配置





    • 其他





负载均衡

ribbon




  • 引入依赖


    spring-cloud-starter-netflix-ribbon





    • 引入eureka客户端组件及配置




  • 注入RestTemplate






    • 在注入RestTemplate时,在实例方法上加上负载均衡注解


      @LoadBalanced





  • 通过RestTemplate访问相关访问






    • 访问服务时需要指定服务id



feign




  • 声明式调用






    • 指定服务id


      @FeignClient("user-service")




    • 指定接口







    • @GetMapping("/user/{id}")




    • 方法入参







    • 引入依赖


      spring-cloud-starter-openfeign




    • 引入eureka客户端组件及配置





    • 启用组件


      @EnableFeignClients




    • 声明目标服务接口





    • 注入声明接口,并调用





网关

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(fallbackMethod = "error")




    • 可以设定熔断相关配置







    • 超时时间





    • 对应方法增加@HystrixCommand注解





hystrix-dashboard




  • 核心依赖


    spring-cloud-starter-netflix-hystrix-dashboard




  • 启用组件


    @EnableHystrixDashboard




  • 添加监控主机






    • turbine集群


      https://turbine-hostname:port/turbine.stream




    • turbine集群中某一个节点


      https://turbine-hostname:port/turbine.stream?cluster=[clusterName]




    • 单节点


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






    • 客户端引入actuator监控组件





    • 添加主机地址





总结


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







- END -







浏览 83
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报