实例隔离和熔断隔离的区别

举报
沉迷学习の金木研 发表于 2019/05/30 16:45:12 2019/05/30
【摘要】 刚使用CSE开发微服务时,用户往往区分不太清负载均衡里的实例隔离,和降级策略里的熔断,有什么区别。概念区分:熔断降级策略里的隔离相当于只是一个检测机制,用来检测服务错误状态,用来启动熔断降级措施的,可以看一下hystrix的定义https://github.com/Netflix/Hystrix/wiki/Configuration; 负载均衡策略的隔离是把某个有问题的微服务实例隔离出去,暂...

刚使用CSE开发微服务时,用户往往区分不太清负载均衡里的实例隔离,和降级策略里的熔断,有什么区别。

概念区分:

熔断降级策略里的隔离相当于只是一个检测机制,用来检测服务错误状态,用来启动熔断降级措施的,可以看一下hystrix的定义https://github.com/Netflix/Hystrix/wiki/Configuration
负载均衡策略的隔离是把某个有问题的微服务实例隔离出去,暂时不调用它

效果差异

熔断降级里面的隔离触发后调用的是熔断降级的逻辑,所以他们之间的效果差异就是熔断降级和LB的实例隔离的差异;

1. 生效级别的差异

熔断降级里面的效果,直白点说是服务-接口级的,一旦某个服务A的某个接口OP1触发了熔断,那么这个接口在一段时间内都不能被调用,也就是这个服务的任意一个实例的OP1接口都不会被调用了,但是服务A的实例的OP23之类的接口是可以被调用的。

LB里面的实例隔离,是服务A下面的实例a1有问题,那么a1完全不会接收到请求(OP1OP2……等所有a1实例的接口都没有请求),但是a2a3……实例仍然会被调用。

2. 生效后的效果差异

熔断降级生效后,服务的某个接口被熔断,无法调用,请求会走到降级逻辑来处理(除非你把降级关了),我们默认提供的降级逻辑有returnnullthrowexception,默认是throwexception。换言之你在默认降级逻辑里拿不到真实应答的。

LB 的实例隔离触发了,只是某个实例不能被调用,但是其他实例还可以继续用,所以只要你不是所有的实例都被隔离了,理论上还是能够正常调用和处理业务。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。