谈 Hystrix 与 Hystrix写入类

Hystrix服务保护框架有 服务降级,服务熔断,服务隔离

降级就是比如一个方法突然访问了几十万次的时候,线程处理不过来,然后返回给用户一个友好的提示。

熔断一般跟降级一起用,就是给某一个方法设置一个阈值,比如1000,当它达到这个极限的时候,用服务降级给它返回一个友好的提示。

先说一下:当前类某一个方法发生雪崩效应的时候,剩下的方法也会进不去。
雪崩效应 默认情况下只有一个线程池处理所有请求,如果在高并发情况下,所有的客户端请求堆积到一个服务接口上,
就会产生所有的线程去处理该服务接口,可能会导致部分服务无法运行

隔离就是重启一个线程池,让方法隔离,重启一个线程池,与别的方法互不影响。

实现Hystrix 在需要的方法上加 

@HystrixCommand(fallbackMethod = "OrderGetUserFallBack")  fallbackMethod 指的是发生雪崩后返回的友好提示方法

pom     启动类前加   @EnableHystrix

<!-- hystrix断路器 -->
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>

上面讲的方法实现坏处就是让代码太过冗余,下面是给它写成类

@Component
public class OrderFallback extends BaseApiService implements Orderfegin {
    @Override
    public User getMember(String name) {
        return null;
    }

    @Override
    public ResponseBase getUserInfo() {
        return setResultError("现在访问人数过多,服务降级,请稍后重试");
    }
}

@FeignClient注解不加的话会报错找不到会员member别名服务

然后加上fallback

   public ResponseBase OrderGetUserInfoHyst() {
        System.out.println("OrderGetUserInfoHyst"+"当前线程池名称"+Thread.currentThread().getName());
        return orderfegin.getUserInfo();
    }

隔离应该是将 return隔离出来 而上面那种方法连输出语句一起隔离了

Hystrix禁止服务超时时间最好不要禁掉,可以把时间设置长一点 默认的超时时间是1s,ribbon也是,测试feign超时和雪崩不要加

ribbon:
  ###指的是建立连接所用的时间,适用于网络状况正常的情况下,两端连接所用的时间。
  ReadTimeout: 5000
  ###指的是建立连接后从服务器读取到可用资源所用的时间。
  ConnectTimeout: 5000

hystrix:
  command:
    default:  #default全局有效,service id指定应用有效
      execution:
        timeout:
          #如果enabled设置为false,则请求超时交给ribbon控制,为true,则超时作为熔断根据
        isolation:
          thread:
            timeoutInMilliseconds: 5000 #断路器超时时间,默认1000ms

 

转载于:https://my.oschina.net/u/4134908/blog/3060901

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值