springboot整合Hystrix 熔断器
基本概念
1.1、Spring Cloud调用接口过程
Spring Cloud 在接口调用上,大致会经过如下几个组件配合:
Feign ----->Hystrix —>Ribbon —>Http Client(apache http components 或者 Okhttp) 具体交互流程上,如下图所示:
- 接口化请求调用当调用被@FeignClient注解修饰的接口时,在框架内部,将请求转换成Feign的请求实例feign.Request,交由Feign框架处理。
- Feign:转化请求Feign是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,封装了Http调用流程。
- Hystrix:熔断处理机制Feign的调用关系,会被Hystrix代理拦截,对每一个Feign调用请求,Hystrix都会将其包装成HystrixCommand,参与Hystrix的流控和熔断规则。如果请求判断需要熔断,则Hystrix直接熔断,抛出异常或者使用FallbackFactory返回熔断Fallback结果;如果通过,则将调用请求传递给Ribbon组件。
- Ribbon:服务地址选择当请求传递到Ribbon之后,Ribbon会根据自身维护的服务列表,根据服务的服务质量,如平均响应时间,Load等,结合特定的规则,从列表中挑选合适的服务实例,选择好机器之后,然后将机器实例的信息请求传递给Http Client客户端,HttpClient客户端来执行真正的Http接口调用;
- HttpClient :Http客户端,真正执行Http调用根据上层Ribbon传递过来的请求,已经指定了服务地址,则HttpClient开始执行真正的Http请求。
1.2、Hystrix概念
Hystrix 是一个供分布式系统使用,提供延迟和容错功能,保证复杂的分布系统在面临不可避免的失败时,仍能有其弹性。
比如系统中有很多服务,当某些服务不稳定的时候,使用这些服务的用户线程将会阻塞,如果没有隔离机制,系统随时就有可能会挂掉,从而带来很大的风险。SpringCloud使用Hystrix组件提供断路器、资源隔离与自我修复功能。下图表示服务B触发了断路器,阻止了级联失败:
feign结合Hystrix使用
2.1、引入依赖
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency><!--hystrix依赖,主要是用 @HystrixCommand -->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency><!--服务注册--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>
<!--服务调用--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency>
2.2、application添加配置
#开启熔断机制
feign.hystrix.enabled=true
# 设置hystrix超时时间,默认1000ms
#hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=6000
2.3、在调用服务的client包里面创建熔断器的实现类
实现Feignclient的方法
2.4、测试熔断器效果
结束!!!!
没有什么比时间更具有说服力了,因为时间无需通如我们就能够改变切。
springboot整合Hystrix 熔断器相关推荐
- SpringCloud-容错处理Hystrix熔断器
前言:微服务架构应用的特点就是多服务,而服务层之间通过网络进行通信,从而支撑起整个应用系统,所以,各个微服务之间不可避免的存在耦合依赖关系.但任何的服务应用实例都不可能永远的健康或网络不可能永远的都相 ...
- springCloud 之 Hystrix 熔断器
Hystrix 熔断器属于⼀种容错机制 微服务中的雪崩效应 什么是微服务中的雪崩效应呢? 微服务中,⼀个请求可能需要多个微服务接⼝才能实现,会形成复杂的调⽤链路. 扇⼊:代表着该微服务被调⽤的次数,扇 ...
- hystrix threadpool coresize_SpringCloud 基础教程(八)-Hystrix熔断器(上)
我的博客:兰陵笑笑生,欢迎浏览博客! 关注公众号:"程序员笑笑生", 回复 "Spring Cloud"."Spring Boot" 获取 ...
- Springboot整合Dubbo简单示例
Springboot 整合dubbo: 1 简介 Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的 ...
- 一文带你了解Ribbon负载均衡和Hystrix熔断器
文章目录 1. Ribbon负载均衡 1.1 关于负载均衡 1.2 Ribbon高级应用 1.3 Ribbon负载均衡策略 1.4 Ribbon核心源码剖析 2. Hystrix熔断器 2.1 微服务 ...
- Ribbon 负载均衡 和 Hystrix熔断器
1 Ribbon负载均衡 1.1 关于负载均衡 负载均衡一般分为服务器端负载均衡和客户端负载均衡 所谓服务器端负载均衡,比如Nginx.F5这些,请求到达服务器之后由这些负载均衡器根据一定的算法将请求 ...
- Spring Cloud 集成 Hystrix 熔断器
文章目录 Hystrix 熔断器 Hystrix 概述 Hystrix 降级 服务提供方 步骤 pom.xml(依赖) GoodsController.java(包含降级方法) 启动类(@Enable ...
- SpringBoot整合Dubbo Zookeeper
1.环境准备 (1)软件下载 链接:https://pan.baidu.com/s/1z8ehuDRX7A85jj6AyMA-rg 提取码:hs3s (2)软件启动 cd ~/software/zoo ...
- 微服务商城系统(六)商品搜索 SpringBoot 整合 Elasticsearch
文章目录 一.Elasticsearch 和 IK 分词器的安装 二.Kibana 使用 三.数据导入 Elasticsearch 1.SpringData Elasticsearch 介绍 2.搜索 ...
最新文章
- 一个API调用27个NLP预训练模型:BERT、GPT-2全囊括,像导入NumPy一样容易
- 摘要提取算法——本质上就是pagerank,选择rank最高的句子作为摘要,如果结合word2vec应该有非常好的效果...
- linux下编译动态和静态链接库
- Linux -- gpasswd
- c语言实现线性表的算法,数据结构算法代码实现——线性表的定义(一)
- CCF CSP201312-4有趣的数
- 学习JavaScript数据结构与算法 — 散列表
- filezilla 设置服务器_服务器ftp软件,五款服务器ftp软件的使用方法
- 非IT专业大学生对erp的思考
- 使用pexpect报错could not shell prompt(received: ‘‘, excepted: ‘\\[PEXPECT\\][\\$\\#]‘)
- 山西华夏文明历史穿越和黄河文明”研学旅行团
- 有趣的python typosquatting不赚钱
- [项目管理]项目计划如何做
- 继在中国开设AI中心两个月后 Google这次又将一个重大研究项目转向法国
- C语言从0到1算法小白训练营——day1
- 公交语音播报调试第四天
- Tomcat-常用配置文件及关闭或调整catalina.out日志输出的三种方法
- 那些深藏在记忆深处的片段 动漫篇 国外动漫部分(排名不分先后)
- UPS系统的配置与计算
- Cento安装mysql出错 file /usr/share/mysql/czech/errmsg.sys from install of MySQL-server-5.5.31-2.el6.i6