springcloud feign增加熔断器Hystrix
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的更多相关文章
- springcloud(九):熔断器Hystrix和Feign的应用案例
因为 feign 中已经支持了 Hystrix ,所以在 Feign 中使用 Hystrix 时,不需要导包,也不需要在入口类上面增加额外的注解: Feign 虽然支持了 Hystrix ,但是默认 ...
- springcloud(九):熔断器Hystrix和Feign的全套应用案例(二)
一.. 创建Eureka-Server 服务中心项目 1. 创建Eureka-Server 服务中心项目架构如下 2. pom.xml <dependencies> <depende ...
- springcloud(四):熔断器Hystrix
说起springcloud熔断让我想起了去年股市中的熔断,多次痛的领悟,随意实施的熔断对整个系统的影响是灾难性的,好了接下来我们还是说正事. 熔断器 雪崩效应 在微服务架构中通常会有多个服务层调用,基 ...
- springcloud(八):熔断器Hystrix
熔断器 雪崩效应 在微服务架构中通常会有多个服务层调用,基础服务的故障可能会导致级联故障,进而造成整个系统不可用的情况,这种现象被称为服务雪崩效应.服务雪崩效应是一种因“服务提供者”的不可用导致“服务 ...
- 跟我学SpringCloud | 第四篇:熔断器Hystrix
跟我学SpringCloud | 第四篇:熔断器Hystrix 1. 熔断器 服务雪崩 在正常的微服务架构体系下,一个业务很少有只需要调用一个服务就可以返回数据的情况,这种比较常见的是出现在demo中 ...
- SpringCloud 在Feign上使用Hystrix(断路由)
SpringCloud 在Feign上使用Hystrix(断路由) 第一步:由于Feign的起步依赖中已经引入了Hystrix的依赖,所以只需要开启Hystrix的功能,在properties文件中 ...
- SpringCloud(4)熔断器 Hystrix
在微服务架构中,根据业务来拆分成一个个的服务,服务与服务之间可以相互调用(RPC),在Spring Cloud可以用RestTemplate+Ribbon和Feign来调用.为了保证其高可用,单个服务 ...
- 熔断器---Hystrix
Hystrix:熔断器,容错管理工具,旨在通过熔断机制控制服务和第三方库的节点,从而对延迟和故障提供更强大的容错能力. 说到熔断器,先要引入另外一个词,雪崩效应. 雪崩效应,百度百科的解释是这样的: ...
- spring boot 2.0.3+spring cloud (Finchley)4、熔断器Hystrix
在分布式系统中服务与服务之间的依赖错综复杂,一种不可避免的情况就是某些服务会出现故障,导致依赖于他们的其他服务出现远程调度的线程阻塞.某个服务的单个点的请求故障会导致用户的请求处于阻塞状态,最终的结果 ...
随机推荐
- openwrt增加密码及ssh的方法
openwrt增加密码及ssh的方法 1.进入openwrt系统源码的顶层目录,然后执行 make menuconfig命令进入 Network--> SSH--> <*>o ...
- c# 6.0 语法特性
namespace _6._0新特性 { using static _6._0新特性.Statics.StaticClass; class Program { static void Main(str ...
- I2C自编设备驱动设计
一.自编设备驱动模型 at24.c: static int __init at24_init(void) { io_limit = rounddown_pow_of_two(io_limit); re ...
- objective-c: Functions and static keyword
Functions function is a concept for C programming language, objective-c is entirely relies on C. To ...
- MYSQL的SQL_CALC_FOUND_ROWS 和count(*)
mysql的SQL_CALC_FOUND_ROWS 和 count(*) 在很多分页的程序中都这样写: SELECT COUNT(*) from `table` WHERE ......; 查出符合 ...
- 58、salesforce学习笔记(五)
Set集合 Set<String> set1 = new Set<String>(); set1.add('1'); set1.add('2'); Set<String& ...
- 2.Prometheus安装部署
环境准备 2台Linux操作系统(基于centos7) docker环境 配置 IP 角色 版本 192.168.229.139 prometheus-server 2.10 192.168.229. ...
- js 中常用的设计模式
常用的设计模式: 工厂方法模式.单例模式.适配器模式.组合模式.迭代子模式 (23种设计模式) 总体来说设计模式分为三大类: ①创建型模式 共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原 ...
- PHP 原生上传图片
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> < ...
- 在doker上的python安装及环境部署
python环境部署 我们今天学习的内容是如何将Django项目部署到linux服务器上,我们部署的linux系统是centos7首先,我们先在linux上搭建我们的Python3环境: 在这里首先强 ...