1.依赖

<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
</dependency>

2.springboot启动类上不需要额外加注解,feignclient注解默认支持hystrix

@EnableFeignClients  //1.支持Hystrix和他的fallback  2.支持ribbon 的负载均衡  3.启动时会进行包扫描,扫描所有带@FeignClient的类并进行处理

3.配置增加

#开启熔断
feign.hystrix.enabled=true
#默认超时时间
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=120000
#特定feign的超时时间
hystrix.command.MqSendFeign#sendMq(MqMessage).execution.isolation.thread.timeoutInMilliseconds=1000

4.feign客户端注解中fallback指定熔断处理类,需要知道具体调用失败原因可以使用fallbackFactory

feign

@FeignClient(name = "test",fallback = MqSendFeignFallback.class)
//@FeignClient(name = "test",fallbackFactory = MqsendFeignFallbackFactory.class) //fallbackFactory可以获取调用失败原因
public interface MqSendFeign { @PostMapping("/ss/common/sendMq")
Result sendMq(@RequestBody @Valid MqMessage mqMessage); }

fallback

@Slf4j
@Component
public class MqSendFeignFallback implements MqSendFeign { @Override
public Result sendMq(MqMessage mqMessage) {
log.info("MqSendFeignFallback error");
return new Result();
}
}

fallbackFactory

@Slf4j
@Component
public class MqsendFeignFallbackFactory implements FallbackFactory<MqSendFeign> { @Override
public MqSendFeign create(Throwable throwable) {
return new MqSendFeign() {
@Override
public Result sendMq(MqMessage mqMessage) {
log.error("MqsendFeignFallbackFactory error",throwable);
return new Result();
}
};
}
}

springcloud feign增加熔断器Hystrix的更多相关文章

  1. springcloud(九):熔断器Hystrix和Feign的应用案例

    因为 feign 中已经支持了 Hystrix ,所以在 Feign 中使用 Hystrix 时,不需要导包,也不需要在入口类上面增加额外的注解:  Feign 虽然支持了 Hystrix ,但是默认 ...

  2. springcloud(九):熔断器Hystrix和Feign的全套应用案例(二)

    一.. 创建Eureka-Server 服务中心项目 1. 创建Eureka-Server 服务中心项目架构如下 2. pom.xml <dependencies> <depende ...

  3. springcloud(四):熔断器Hystrix

    说起springcloud熔断让我想起了去年股市中的熔断,多次痛的领悟,随意实施的熔断对整个系统的影响是灾难性的,好了接下来我们还是说正事. 熔断器 雪崩效应 在微服务架构中通常会有多个服务层调用,基 ...

  4. springcloud(八):熔断器Hystrix

    熔断器 雪崩效应 在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应.服务雪崩效应是一种因“服务提供者”的不可用导致“服务 ...

  5. 跟我学SpringCloud | 第四篇:熔断器Hystrix

    跟我学SpringCloud | 第四篇:熔断器Hystrix 1. 熔断器 服务雪崩 在正常的微服务架构体系下,一个业务很少有只需要调用一个服务就可以返回数据的情况,这种比较常见的是出现在demo中 ...

  6. SpringCloud 在Feign上使用Hystrix(断路由)

    SpringCloud  在Feign上使用Hystrix(断路由) 第一步:由于Feign的起步依赖中已经引入了Hystrix的依赖,所以只需要开启Hystrix的功能,在properties文件中 ...

  7. SpringCloud(4)熔断器 Hystrix

    在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用.为了保证其高可用,单个服务 ...

  8. 熔断器---Hystrix

    Hystrix:熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力. 说到熔断器,先要引入另外一个词,雪崩效应. 雪崩效应,百度百科的解释是这样的: ...

  9. spring boot 2.0.3+spring cloud (Finchley)4、熔断器Hystrix

    在分布式系统中服务与服务之间的依赖错综复杂,一种不可避免的情况就是某些服务会出现故障,导致依赖于他们的其他服务出现远程调度的线程阻塞.某个服务的单个点的请求故障会导致用户的请求处于阻塞状态,最终的结果 ...

随机推荐

  1. Python3.5-20190513-廖老师-自我笔记-函数式编程

    把复杂的任务拆成各个小的函数,通过函数的调用来完成任务.这就是面向过程编程. 高阶函数:就是让函数的参数能够接收别的函数.把函数作为参数传入到另一个函数. 函数名也是变量.和变量用法一样的,指向一个函 ...

  2. oracle trim无效?

    这里说说如果是全角空格怎么去除 方法一 trim(TO_SINGLE_BYTE('aaa')) 方法二 SELECT TRIM(replace('aaa',' ','')) FROM dual

  3. php图片无损压缩的问题解决

    代码如下 <?php namespace App\Contract; use Carbon\Carbon; /** * 图片压缩封装类 * @author jackie <2019.11. ...

  4. Solr安装步骤 + dataimport导入数据配置

    一:安装solr服务器 1.导入安装包到 /usr/local/solr/singleSolr目录下 解压tomat命令:tar -zxvf apache-tomcat-7.0.47.tar.gz 解 ...

  5. spring框架的一些测试思路

    一.Spring Boot Actuators Spring Boot Actuator是Spring Boot提供的对应用系统的监控和管理的集成功能,可以查看应用配置的详细信息,例如自动化配置信息. ...

  6. 【leetcode】947. Most Stones Removed with Same Row or Column

    题目如下: On a 2D plane, we place stones at some integer coordinate points.  Each coordinate point may h ...

  7. loadRunner之接口测试

    接口测试需求: 1.脚本支持循环测试,并且每次测试的请求报文不一样(字段stbId每次请求不一样) 2.输出每次测试的请求报文和响应报文 3.根据响应报文判断接口调用是否成功 4.输出最终测试结果:循 ...

  8. 大碗宽面Alpha冲刺阶段博客目录

    大碗宽面Alpha冲刺阶段博客目录 一.Scrum Meeting 1. [第六周会议记录]第六周链接 2. [第七周会议记录]第七周链接 二.测试报告 [alpha阶段测试报告](博客链接) ## ...

  9. Monkey学习

    Monkey是一个工程,生成伟随机事件流(在一段时间内完全不重复的事件流),由种子生成.可以模拟用户,点击,触屏等.最好用来做压力测试.无法做功能测试. adb shell monkey -p -v ...

  10. ANSI 标准C 还定义了如下几个宏

    ANSI 标准C 还定义了如下几个宏:_LINE_ 表示正在编译的文件的行号_FILE_ 表示正在编译的文件的名字预处理名称意义#define 宏定义#undef 撤销已定义过的宏名#include ...