SpringCloud微服务架构篇5:Hystrix服务降级

"type":"template_header"}快速失败模式是指在服务降级处理逻辑中不提供任何处理,直接抛出一个异常。静默失败即当进行服务降级处理时返回空的结果,针对返回值类型,返回的可能…

"type":"template_header"}

快速失利形式是指在服务降级处理逻辑中不供给任何处理,直接抛出一个反常。

静默失利即当进行服务降级处理时回来空的成果,针对回来值类型,回来的可能是null、空List或许空Map等。

当咱们的履行成果回来的是一个包含多个字段的杂乱目标时,就能够经过服务恳求中的值及一些默认值来拼装这个回来成果。比方从cookie、服务恳求的参数及header、之前成功回来的成果中获取回来成果需求的值。

假如是承继HystrixObservableCommand且回来多个值,当服务降级时仅期望回来为犯错之前的成果。

回来长途缓存是指在服务处理失利的情况下再建议一同长途恳求,不过这次恳求的是一个缓存,比方读取Redis中的缓存成果。

当运用长途缓存时,需求从头封装为Command进行调用。履行fallback的线程必定要与主线程区分隔,不然可能会形成主线程休眠,线程池被耗费光。

假如从形式仅仅是用来作为主服务失利时的辅佐处理,那么最好的办法是将主形式和从形式运用门面形式从头构建一个新的指令。

留意:因为主/从指令都是选用线程池阻隔办法履行的,那么所构建的门面指令则能够运用信号量阻隔办法,避免了体系剩余的开支。

代码示例:

"type":"template_header"}

Hystrix供给的恳求缓存能够在CommandKey/CommandGroup相同的情况下,直接同享指令履行的成果,下降依靠调用次数,在高并发和CacheKey命中率高场景下能够提高服务功能。

HystrixCommand中供给了isResponseFromCache()办法,判别是否从恳求缓存中回来。

也能够运用注解:

@CacheResult:符号回来成果需求进行缓存,该注解要与@HystrixCommand注解一同运用。

@CacheKey:用来符号假如构建缓存的值。

@CacheRemove:用来符号在办法履行结束后铲除指定的缓存。

    关于作者: tyughjyu

    这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字活着HTML!

    为您推荐

    发表评论

    电子邮件地址不会被公开。 必填项已用*标注

    评论列表 人参与

    联系我们

    联系我们

    8888-88888888

    在线咨询: QQ交谈

    邮箱: email@admin.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部