在spring cloud组件中 spring cloud Hystrix是防雪崩的利器,它也是基于Netflix提供的Hystrix进行封装的。

一.服务容错降级

1.介绍

优先核心服务,非核心服务不可用或弱可用

通过HystrixCommand注解指定

fallbackMethod(回退函数)中具体实现降级逻辑

2.代码实现

首先是一个基本的restful请求(可以在customer启动类上将@SpringBootApplication替换成@SpringCloudApplication)

// 断路器配置,当无法调用如下方法时,就会调用自定的hiError方法。

@HystrixCommand(fallbackMethod = "hiError")

public String hiService(String name)

{

RestTemplate restTemplate = new RestTemplate();

String data = restTemplate.getForObject("http://service-provider/hi?name=" + name, String.class);

return data;

}

public String hiError(String name)

{

return "hey " +

name + ", there is some problem with hi page";

}

当hiService方法出错时,服务降级会执行hiError方法。

但是,如果超时之后,也会进行服务降级,那么就需要根据需求配置超时时间。

#配置hystrix的超时时间

hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=5000

#配置方法体的超时时间

hystrix.command.方法名.execution.isolation.thread.timeoutInMilliseconds=5000

也可以注解对指定方法配置超时时间

// 断路器配置,当无法调用如下方法时,就会调用自定的hiError方法。

@HystrixCommand(fallbackMethod = "hiError",

commandProperties = {@HystrixProperty(name="execution.isolation.thread.timeoutInMilliseconds",value = "5000")})

public String hiService(String name)

{

String data = restTemplate.getForObject("http://service-provider/hi?name=" + name, String.class);

return data;

}

无论使用哪种配置,要实现服务降级,都需要在方法体上加入注解@HystrixCommand

另外,如果使用的是feign,则使用的是ribbon的超时设置

#ribbon的超时时间

ribbon.ReadTimeout=3000

ribbon.ConnectTimeout=3000

二.熔断机制

熔断机制:当一段时间内请求量超过限制的时候,会进行断路器模式。

断路器模式:将受保护的服务封装在一个可以监控故障的断路器对象中去,当故障达到一定的值,断路器将会跳闸,断路器对象返回错误信息。

1.断路器配置

@HystrixCommand(commandProperties = {

@HystrixProperty(name = "circuitBreaker.enabled",value = "true"),

@HystrixProperty(name = "circuitBreaker.requestVolumeThreshold",value = "10"),//最小请求数

@HystrixProperty(name = "circuitBreaker.sleepWindowInMilliseconds",value = "10000"),//10秒时间窗口(进行请求统计)。休眠之后再次设置断路器half open(允许正常请求)

@HystrixProperty(name="circuitBreaker.errorThresholdPercentage",value = "60")})//百分比条件,时间窗口内达到最小请求数,错误率高达60%,则打开断路器

#断路器

feign.hystrix.enabled=true

springcloud断路器修改熔断时间_SpringCloud(四)Hystrix服务降级,服务熔断相关推荐

  1. Hystrix断路器原理及实现(服务降级、熔断、限流)

    Hystrix断路器原理及实现(服务降级.熔断.限流) 分布式系统面临的问题 Hystrix重要概念(面试常考) Hystrix案例 Hystrix 服务提供者 Hystrix 服务消费者 原因与解决 ...

  2. feign直接走熔断_SpringCloud微服务面试必问:Hystrix 服务降级、熔断

    本文作者:JLSong 本文链接:https://www.cnblogs.com/songjilong/p/12770999.html 1.Hystrix是什么? Hystrix 是一个用于处理分布式 ...

  3. 微服务(八)——Hystrix服务降级、熔断、限流(上)

    目录 Hystrix服务降级.熔断.限流 Hystrix是什么 Hystrix停更进维 Hystrix的服务降级熔断限流相关概念 Hystrix支付微服务构建 JMeter高并发压测后卡顿 订单微服务 ...

  4. Spring Cloud H (五)初战服务降级和熔断Hystrix(豪猪哥)

    目录 目录 前言 概述 服务雪崩 服务限流 服务降级 服务熔断 如何理解服务降级和熔断之间的关系 代码实战 Hystrix支付微服务构建 订单微服务调用支付服务出现卡顿 Hystrix之服务降级支付侧 ...

  5. Hystrix 服务降级和熔断

    Hystrix 服务降级和服务熔断 文章目录 Hystrix 服务降级和服务熔断 1.问题的提出 2.Hystrix 3.服务降级 3.1 服务降级实操 3.2 服务降级之客户端 3.3 总结 4.服 ...

  6. Hystrix 服务断路器(熔断器 )/服务降级/服务监控 hystrixDashboard

    1. 服务雪崩 多个微服务之间调用的时候, 假设微服务A 调用微服务B和微服务C, 微服务B和微服务C又调用其他的微服务, 这就是所谓的'扇出'. 如果扇出的链路上某个微服务的调用响应时间过长或者不可 ...

  7. SpringCoud - 基础入门(服务注册与发现、服务调用、服务降级与熔断篇)

    SpringCloud:是一系列框架的有序集合,也是一套完整的微服务解决方案.利用SpringBoot的开发便利巧妙的简化了分布式系统基础设施的开发,如发现注册.配置中心.消息总线.负载均衡.断路器. ...

  8. SpringCloud微服务-服务注册发现-负载均衡-服务调用-服务降级-服务网关-配置中心-消息总线-消息驱动-链路追踪-alibaba-nacos-sentinel-seata理论原理分析

    SpringCloud理论技术 概述 ​ Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总 ...

  9. 高并发之服务降级和服务熔断____服务降级、熔断、限流的区别

    高并发之服务降级和服务熔断 服务降级: 服务压力剧增的时候根据当前的业务情况及流量对一些服务和页面有策略的降级,以此环节服务器的压力,以保证核心任务的进行. 同时保证部分甚至大部分任务客户能得到正确的 ...

  10. 服务降级、熔断、限流

    目录 目录 1.概念 1.1 降级 1.1.1 常见降级: 1.1.2 示例 1.2 熔断 1.2.1 熔断设计 1.2.2 示例 1.3 限流 1.3.1 算法 1.3.2 示例 2.区别 3.案例 ...

最新文章

  1. 用JavaScript和CSS实现“在页面中水平和垂直居中”的时钟
  2. Codeforces 758C. Unfair Poll
  3. 是否同一棵二叉搜索树
  4. linux下反删除软件,浅谈Linux文件系统反删除方法(二)
  5. Hash(散列)建表及查找
  6. Java程序低手之关于泛型(Generic)
  7. 【贪心 和 DP + 卖股票】LeetCode 122. Best Time to Buy and Sell Stock II
  8. 使用Cmder替换cmd,让你的开发飞起来
  9. 字节跳动基于Flink的MQ-Hive实时数据集成
  10. 帆软 FR.i18n 消息关键字或隐藏加载关键字
  11. Python和Java哪个更好找工作?
  12. 随机森林python反欺诈_基于三明治结构深度学习框架的金融反欺诈模型研究与应用...
  13. 基于matlab的微分例题,matlab程序设计常微分方程编程例题答案数学.doc
  14. Redis简介和优势
  15. python 实现日期计算器
  16. 微信小程序图片显示模式
  17. Android 入门第九讲01-音频(本地音乐播放,暂停,继续播放,获取播放时间,快进到指定位置,变速播放,播放data/data/目录下的音频文件,播放网络歌曲)
  18. 怎么在Arcgis中提取多个坐标点的dem值(高程)
  19. 4.2网际协议IP(IPv4)
  20. vue实例中template: App,这样写是什么意思

热门文章

  1. [导入]ASP.NET重用代码技术 - 用户控件技术
  2. Lucas定理(求组合数,例题FZU2020,HDU3944)
  3. UniMelb Comp30022 IT Project (Capstone) - 2.Vuforia in Unity
  4. Spring事务-1
  5. 关于SilverLight视频播放器
  6. keras中的EarlyStopping
  7. 当知识图谱遇上预训练语言模型 -- 留言送书
  8. 深度学习需要掌握的 13 个概率分布
  9. 【深度学习】神经网络为何非激活函数不可?
  10. 居家隔离的第5天,我们整了个六边形战士