feign使用hystrix熔断的配置
2019-08-16 09:33:59来源:博客园 阅读 ()
feign使用hystrix熔断的配置
熔断器hystrix
在分布式系统中,每个服务都可能会调用很多其他服务,被调用的那些服务就是依赖服务,有的时候某些依赖服务出现故障也是很正常的。
Hystrix 可以让我们在分布式系统中对服务间的调用进行控制,加入一些调用延迟或者依赖故障的容错机制。
Hystrix 通过将依赖服务进行资源隔离,进而阻止某个依赖服务出现故障时在整个系统所有的依赖服务调用中进行蔓延;同时Hystrix 还提供故障时的 fallback 降级机制。
总而言之,Hystrix 通过这些方法帮助我们提升分布式系统的可用性和稳定性。
feign开启熔断功能
feign可以用okhttp代替传统的httpclient,性能更好
feign:
hystrix:
enabled: true
httpclient:
enabled: false
okhttp:
enabled: true
ribbon这块也可以对okhttp进行配置
ribbon.httpclient.enabled=false
ribbon.okhttp.enabled=true
hystrix熔断器可以对请求进行重试,对超时时间进行配置等。
hystrix:
command:
default:
execution:
timeout:
enabled: true
isolation:
thread:
#目前有两个容器实例,单个请求超时5s,+重试>10s,超15s则熔断
timeoutInMilliseconds: 15000
ribbon:
#ribbon请求连接的超时时间- 限制3秒内必须请求到服务,并不限制服务处理的返回时间
connectTimeout: 3000
#请求处理的超时时间 下级服务响应最大时间,超出时间消费方(路由也是消费方)返回timeout,超时时间不可大于断路器的超时时间
readTimeout: 5000
feign添加fallback实现默认行为
feign上使用fallback之前,当服务端出现问题时,可以快速响应,并且不会抛出异常,就象为feign加了一层try...cache一样。
使用方式
开始feign.hystrix的功能
feign:
hystrix:
enabled: true
httpclient:
enabled: false
okhttp:
enabled: true
当feign的服务端出现问题时,返回值为fallback的值,你可以自己定,例如:
@Component
@Slf4j
public class UserClientFallback implements UserClient {
@Override
public Map getUser(Long id) {
logger.info("getUser.error");
return null;
}
@Override
public Map getUsers() {
logger.info("getUsers.error.retrun.default");
return ImmutableMap.of("name", "lind", "sex", "male");
}
}
调用userclient失败之后,将返回默认的对象
@GetMapping("/api/v1/test")
public ResponseEntity<?> userGet() {
Map users= userClient.getUsers();
return ResponseUtils.okMessage("success");
}
结果将是默认值
{"status":200,"message":"操作成功","data":{"name":"lind","sex":"male"},"totalRecords":0}
原文链接:https://www.cnblogs.com/lori/p/11112680.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:java设计模式--外观模式
下一篇:Spring的核心机制:依赖注入
- 聊聊 OAuth 2.0 的 token expire_in 使用 2020-06-08
- 为什么阿里巴巴Java开发手册中强制要求接口返回值不允许使用 2020-06-06
- 学习笔记之方法引用 2020-06-06
- idea使用小技巧(一) 2020-06-05
- 用斗地主的实例学会使用java Collections工具类 2020-06-05
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash