码迷,mamicode.com
首页 > 其他好文 > 详细

Hystrix

时间:2021-06-21 19:58:20      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:集群   异常   概念   激活   prope   响应   监控   boot   创建   

一、Hystrix重要概念

1. 是什么

       Hystrix是一个用于处理分布式系统的延迟容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时、异常等,Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败避免级联故障,以提高分布式系统的弹性。

      “断路器”本身是一种开关装置,当某个服务单元发送故障之后,通过断路器的故障监控(类似熔断保险丝),向调用方返回一个符合预期的、可处理的备选响应(FallBack),而不是长时间的等待或者抛出调用方法无法处理的异常,这样就保证了服务调用的线程不会被长时间、不必要地占用,从而避免了故障在分布式系统中的蔓延,乃至雪崩。

2.重要理念

(1)服务降级:服务器忙,请稍后再试,不让客户等待并立刻返回一个友好提示,fallback。

         触发降级的情况:程序运行异常、超时、服务熔断触发服务降级、线程池/信号量打满也会导致服务降级

(2)服务熔断:类比保险丝达到最大服务访问后,直接拒接访问,拉闸限电,然后调用服务降级的方法并返回友好提示

(3)服务限流:秒杀高并发等操作,严禁一窝蜂拥挤,排队,一秒N个,有序进行

 

服务降级实例:

创建三个springboot项目,分别是客户端81,支付端8001,eureka服务注册7001

(1)创建eureka服务注册中心

                                                 技术图片

 

 导入依赖

                                技术图片

 

  创建yml文件,这里为了方便,没有建立eureka集群

                               技术图片

 

 编写主启动类,@EnableEurekaServer 激活注册相关功能

                           技术图片

 

(2)编写支付端8001

                          技术图片

 

 导入相关依赖

                        技术图片

 

创建yml文件

                     技术图片

 

 编写业务类

                  技术图片

 

                  技术图片

 

                  技术图片

 

 主启动类

                 技术图片

 

 @EnableCircuitBreaker 激活Hystrix的注解,@HystrixCommand开启服务降级,当程序出错或超时,就走fallback的方法。

(3)编写客户端81

               技术图片

 

 导入相关依赖

             技术图片

 

 创建yml文件

            技术图片

 

 主启动类

           技术图片

 

 业务类

          技术图片

 

          技术图片

 

 编写完毕!开始测试

         由于在8001里编写的timeout请求会线程睡眠3s,而8001里的服务降级@HystrixCommand注解里值为5000也就是5s才会走fallback方法,故8001不会走fallback方法。但是在81里@HystrixProperty注解里值为1.5s,会走fallback方法。

                                                            技术图片

 

直接通过8001访问 

                                                             技术图片

 

 

 由于在@HystrixProperty注解里值为5s,而线程睡眠为3s,所以可以正常运行,但是现在将@HystrixProperty注解里的值改为2s,理论上会走fallback的方法,那我们试试

                                                       技术图片

 

 确实,走了fallback的方法。以上大概就是服务降级的一些操作

Hystrix

标签:集群   异常   概念   激活   prope   响应   监控   boot   创建   

原文地址:https://www.cnblogs.com/pinkman-Bjtino/p/14907256.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!