Spring Cloud(三) 熔断器Hystrix
前文回顾:
Spring Cloud(一)Eureka Server-单体及集群搭建
Spring Cloud(二) 配置Eureka Client
一.Hystrix介绍
在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应。服务雪崩效应是一种因“服务提供者”的不可用导致“服务消费者”的不可用,并将不可用逐渐放大的过程。
Hystrix是一个库,通过添加延迟容忍和容错逻辑,帮助你控制这些分布式服务之间的交互。Hystrix通过隔离服务之间的访问点、停止级联失败和提供回退选项来实现这一点,所有这些都可以提高系统的整体弹性。
二.Hystrix的设计原则
防止任何单个依赖项耗尽所有容器(如Tomcat)用户线程。
甩掉包袱,快速失败而不是排队。
在任何可行的地方提供回退,以保护用户不受失败的影响。
使用隔离技术(如隔离板、泳道和断路器模式)来限制任何一个依赖项的影响。
通过近实时的度量、监视和警报来优化发现时间。
通过配置的低延迟传播来优化恢复时间。
支持对Hystrix的大多数方面的动态属性更改,允许使用低延迟反馈循环进行实时操作修改。
避免在整个依赖客户端执行中出现故障,而不仅仅是在网络流量中。
三.代码示例
代码基于上一篇博客开发
1.配置文件
application.properties添加这一条:
feign.hystrix.enabled=true
2.创建回调类
@Service
public class HelloRemoteHystrix implements HelloRemote {@Overridepublic String hello(@RequestParam(value = "name") String name) {return "hello " + name + ",this message send failed";}
}
3.添加fallback属性
@FeignClient(name= "spring-cloud-producer", fallback = HelloRemoteHystrix.class)
public interface HelloRemote {
@RequestMapping(value = "/hello")String hello(@RequestParam(value = "name") String name);
}
4.测试
依次启动spring-cloud-eureka、spring-cloud-producer、spring-cloud-consumer三个项目
浏览器中输入:http://localhost:9001/hello/yfy
返回:hello yfy,welcome to Spring Cloud
手动停止spring-cloud-producer服务
浏览器中输入:http://localhost:9001/hello/yfy
返回:hello yfy,this message send failed
Spring Cloud(三) 熔断器Hystrix相关推荐
- Spring Cloud:熔断器Hystrix
一.雪崩效应 在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应.服务雪崩效应是一种因"服务提供者"的 ...
- Spring Cloud (Eureka,Feign,Hystrix整合)
Spring Cloud(Eureka,Feign,Hystrix整合) Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智能路由,微代 ...
- spring cloud hystirx熔断器
hystirx是一个开源的 容错库.目的是为了防止雪崩效应,防止产生级联失败. hystirx解决雪崩效应的主要方式 1,服务降级 ---->fallbacke模式(后备模式) 2,线程隔 ...
- 【夯实Spring Cloud】Spring Cloud中使用Hystrix实现断路器原理详解(上)
本文属于[夯实Spring Cloud]系列文章,该系列旨在用通俗易懂的语言,带大家了解和学习Spring Cloud技术,希望能给读者带来一些干货.系列目录如下: [夯实Spring Cloud]D ...
- Spring Cloud入门教程-Hystrix断路器实现容错和降级
简介 Spring cloud提供了Hystrix容错库用以在服务不可用时,对配置了断路器的方法实行降级策略,临时调用备用方法.这篇文章将创建一个产品微服务,注册到eureka服务注册中心,然后我们使 ...
- 10 在Spring Cloud中使用Hystrix
Hystrix主要用于保护调用服务的一方,如果被调用的服务发生故障,符合一定条件,就会开启断路器对调用的程序进行隔离. 1.准备测试程序 在进行Spring Cloud整合Hystrix之前,我们先准 ...
- SpringCloud - Spring Cloud Netflix 之 Hystrix熔断器(七)
阅读本文前可先参考 SpringCloud - Spring Cloud根/父项目,开发准备(二)_MinggeQingchun的博客-CSDN博客 在微服务架构中,一个应用往往由多个服务组成,这些服 ...
- Spring Cloud 入门 之 Hystrix 篇(四)
一.前言 在微服务应用中,服务存在一定的依赖关系,如果某个目标服务调用慢或者有大量超时造成服务不可用,间接导致其他的依赖服务不可用,最严重的可能会阻塞整条依赖链,最终导致业务系统崩溃(又称雪崩效应). ...
- Spring Cloud的熔断器
熔断器介绍 为什么需要熔断器 当一个调用,里面跟着调用其他微服务时,其他微服务不可用,就会阻塞调用线程,从而可能导致调用链路前的微服务不可用,最终导致雪崩.(雪崩效应) 这个时候就需要有熔断机制作为保 ...
最新文章
- IJMS:牧医所奶业创新团队在瘤胃微生物新型脲酶抑制剂开发方面取得新进展
- jQuery 标签切换----之选项卡的实现
- Qt开发MQTT(二) 之第三方QMQTT
- Highcharts的饼图大小的控制
- python程序设计之文件_Python程序设计之文件操作(2)
- Airflow 中文文档:集成
- 【NOIP2015】【Luogu2669】金币(模拟)
- tcl 查询与设置编码格式
- Android Studio 创建aar包与引用
- UV的入门使用方法,简单,快捷,包教包会
- 开源免费截图软件ShareX如何改变文字水印和logo特效透明度
- 基于boost库的搜索引擎
- ubuntu安装QT依赖
- Altium阴阳拼板教程
- 关于oem7grub 0.4.4 2009-11-18,memory:639k/30 的问题的解决
- 网络攻防研究第001篇:尝试暴力破解某高校研究生管理系统学生密码
- 学前教育试题库及答案_(完整版)学前教育学试题和答案
- H5IOSAndroid-入坑指南
- telnet连接上后自动断开_用于确定网络端口连接到办公室端口工具介绍
- filezilla定时上传_FileZilla的使用和注意事项