OpenFeign 整合 Hystrix 实现服务降级
Hystrix 的默认超时时间 :1s
OpenFeign底层是使用 ribbon实现的 默认连接超时时间 : 1s
修改连接超时时间配置(OpenFeign):
#设置feign客户端超时时间
ribbon:ReadTimeout: 6000 #指的是建立连接所用得时间,适用于网络状况正常的情况下,两端连接所用的时间(6s)ConnectTimeout: 6000 #指的是建立连接后从服务器读取到可用资源所用的时间(6s)
修改Hystrix超时时间(即达到服务降级时间)配置:
hystrix:command:default:execution:isolation:thread:#feign整合hystrix 光设置Hystrix超时没用的 要配合ribbon超时timeoutInMilliseconds: 6000
被调用服务(服务端)使用 Hystrix(断路器)的配置:
添加依赖:
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>
1.在启动类加上注解: @EnableCircuitBreaker
2.在application.yml中修改超时时间(即服务降级时间的阈值)
3.在service实现类中某个方法中实现服务降级配置
(1) 方法指定服务降级方法的配置(即一个方法配置一个服务降级方法)
@HystrixCommand(fallbackMethod = "paymentInfo_timeOutHandler",commandProperties = {@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds",value = "5000")})
其中 paymentInfo_timeOutHandler 是服务降级后执行的方法; value 是服务降级的阈值(时间 5s)。
4.通用服务降级的配置(即 任何方法都共用一个服务降级的方法)
(1)在service类前加入注解 @DefaultProperties(defaultFallback = “payment_global_fallback_method”
其中 payment_global_fallback_method 是服务降级后执行的方法
(2)在需要进行服务降级的方法前加入注解 @HystrixCommand 即可。
(3)此时的服务降级阈值(时间)根据application.yml所配置(若没配置,则使用默认时间1s)的降级阈值时间判断是否需要对服务进行降级。
实现调用端(客户端)
添加依赖:
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
application 配置:
#允许服务降级配置
feign:hystrix:enabled: true
#设置feign客户端超时时间
ribbon:ReadTimeout: 6000 #指的是建立连接所用得时间,适用于网络状况正常的情况下,两端连接所用的时间(5s)ConnectTimeout: 6000 #指的是建立连接后从服务器读取到可用资源所用的时间(5s)
hystrix:command:default:execution:isolation:thread:#feign整合hystrix 光设置Hystrix超时没用的 要配合ribbon超时timeoutInMilliseconds: 6000
在启动类上加入注解@EnableHystrix
降级服务配置:类似服务端的配置。
注:此处涉及三处的服务降级的阈值时间。
1.application中配置的 hystrix (或者没配置,则是默认)阈值时间
2.application中配置的 ribbon (OpenFeign)连接超时阈值时间
3. @HystrixCommand 中设置的服务降级阈值的时间
系统会根据这三个时间中最小的时间判断是否需要进行服务降级。如 hystrix 配置为3s, ribbon 配置为5s, @HystrixCommand 设置为2s,则服务等待时间超过2s后则进行服务降级
OpenFeign 整合 Hystrix 实现服务降级相关推荐
- 手把手教你搭建SpringCloud项目(十)集成Hystrix之服务降级
Spring Cloud全集文章目录: 零.什么是微服务?一看就会系列! 一.手把手教你搭建SpringCloud项目(一)图文详解,傻瓜式操作 二.手把手教你搭建SpringCloud项目(二)生产 ...
- SpringCloud进阶-Hystrix的服务降级
提示:本文主要对Hystrix的服务降级进行总结 文章目录 前言 一.服务降级 1.1 8001 fallback 1.1.1 业务类启用 1.1.2 主启动类激活 1.2 80 fallback 1 ...
- Hystrix之服务降级
springcloud的组件Hystrix一个重要的作用就是实现服务降级,下面介绍相关的使用 一 服务支付方的服务降级 首先介绍服务支付方的服务降级,这里的注册中心使用eureka 1 关于pom.p ...
- Hystrix之服务降级代码演示
所有代码都在github上:https://github.com/demonruin/cloud2020/tree/master 服务降级就是指服务器忙,请稍候再试,不让客户端等待并立刻返回一个友好提 ...
- Hystrix断路器原理及实现(服务降级、熔断、限流)
Hystrix断路器原理及实现(服务降级.熔断.限流) 分布式系统面临的问题 Hystrix重要概念(面试常考) Hystrix案例 Hystrix 服务提供者 Hystrix 服务消费者 原因与解决 ...
- Spring Cloud H (五)初战服务降级和熔断Hystrix(豪猪哥)
目录 目录 前言 概述 服务雪崩 服务限流 服务降级 服务熔断 如何理解服务降级和熔断之间的关系 代码实战 Hystrix支付微服务构建 订单微服务调用支付服务出现卡顿 Hystrix之服务降级支付侧 ...
- 微服务(八)——Hystrix服务降级、熔断、限流(上)
目录 Hystrix服务降级.熔断.限流 Hystrix是什么 Hystrix停更进维 Hystrix的服务降级熔断限流相关概念 Hystrix支付微服务构建 JMeter高并发压测后卡顿 订单微服务 ...
- 微服务之服务降级Hystrix
B站尚硅谷P47~P64 代码Gitee地址 以上次博客的eureka集群作为注册中心来演示. 虽然豪猪哥已经停止更新了,但设计理念非常优秀. 1. Hystrix 1.1 为什么引入Hystrix ...
- SpringCloud微服务-服务注册发现-负载均衡-服务调用-服务降级-服务网关-配置中心-消息总线-消息驱动-链路追踪-alibaba-nacos-sentinel-seata理论原理分析
SpringCloud理论技术 概述 Spring Cloud是一系列框架的有序集合.它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册.配置中心.消息总 ...
最新文章
- System.Transactions:实现你自己的Resource Manager
- Intent进阶 和 Intent-filter 学习笔记
- python计算n的32次方_获得用户输入的一个整数N,计算并输出N的32次方。_学小易找答案...
- Windows 10 的新 bug 可导致任意文件被覆写
- linux 进程 setuid,linux特殊权限位之setuid、setgid和sticky
- pandas中inplace_pandas中inplace参数
- DataGrip按某列大小对数据集进行排序
- Hadoop入门(九)Mapreduce高级shuffle之Combiner
- ictclas4j 分词工具包 安装流程
- css flex 小记
- 一招教你数据仓库如何高效批量导入与更新数据
- xmind快捷键_小冰笔记 | 请在XMIND里写下你的MIND!
- 存储过程中进行循环处理数据
- 聪明人懂得深交四种人,绝交三种人!
- java ee 思维导图
- Python中如何将浮点型数据转换成整型
- 树的直径/重心 学习笔记
- SpringBoot Jar包构建源码分析
- CF Pairs of Topics
- “永恒之蓝”(Wannacry)蠕虫全球肆虐 安装补丁的方法
热门文章
- mysql的开题报告_开题报告可以随便写吗(数据库 开题报告)
- MATLAB filter2
- javascript 函数节流 throttle 解决函数被频繁调用、浏览器卡顿的问题
- 李开复:真正成功的公司源于伟大的创业理念
- 44-【kubernetes】kubernetes集群中,如何安装weave命令+如何安装weave插件+如何修改weave的默认网段(10.32.0.0/12)
- html鼠标滑过导航栏变色,JavaScript实现鼠标点击导航栏变色特效
- 《失业的程序员》(九):创业就是一场戏
- 什么是过拟合和欠拟合,怎么解决?
- 阿里云服务器价格:阿里云第六代云服务器最新价格表
- 【四、五、六月份国际学术会议合集】