zoukankan      html  css  js  c++  java
  • 8-30 Hystrix章节总结


    回顾,这个图是面试的时候必考的内容。
    Hystris和每个人是息息相关的,不管你是架构设计,不管是一线开发,不管你是学习的状态。Hystris都是要求大家必知必会的内容。

    无论怎么封装HystrisCommand还是怎么写FallBack,还是怎么设置线程池,还是怎么限制超时,这些东西都和你的业务息息相关。

    首先本身有两种命令形式,分成四种执行情况返回,可以分为量大类,一个是execute和queue,他们表示单次处理。
    observe和toObservable更多的是进行类似于订阅式的处理。
    HystrixCommand和HystrixObservableCommand最大的区别就是HystrixCommand默认是线程隔离,HystrixObservableCommand默认是信号量隔离,同时它可以执行多个命令。

    检查缓存

    下一步检查缓存,请求合并,请求缓存。这里有个重要的点就是一定要开启Hystrix上下文。他们都要在我们的Hystrix上下文中执行,
    请求合并注意的另外一点,它要求两次请求足够的近才能合并,而这个参数我们是可以设置的。

    下一步

    首先检查断路器有没有开启,如果开启就会始终执行我们的fallBack。如果没开启,就会去检查信号量,线程池数量有没有满,如果满了直接fallBack如果没有满进行下一步。

    进行下一步就是到6这里,真正执行我们的业务方法了。run或者construct

    执行业务的时候就会有成功,有失败。
    如果失败就是走fallBack。这里默认是有个例外的,如果大家报的错误是HystrixBadRequestException它不会触发fallBack而是直接把异常给大家跑出来。
    当我们真正在开始使用的时候,会自己封装一些异常,这个时候我们可以用ignoreException去忽略我们的异常,也就是做了个类似HystrixBadRequestException的请求,这样它就可以抛出来了这个异常。


    超时:业务虽然执行成功了,但是太慢也不行啊,超时也会触发fallBack

    fallBack本身就有个successful的概念,如果fallbacksuccess了就返回如果失败了就抛出错误。

    检查断路器的健康状态。


    结束

  • 相关阅读:
    mac os programming
    Rejecting Good Engineers?
    Do Undergrads in MIT Struggle to Obtain Good Grades?
    Go to industry?
    LaTex Tricks
    Convert jupyter notebooks to python files
    How to get gradients with respect to the inputs in pytorch
    Uninstall cuda 9.1 and install cuda 8.0
    How to edit codes on the server which runs jupyter notebook using your pc's bwroser
    Leetcode No.94 Binary Tree Inorder Traversal二叉树中序遍历(c++实现)
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/12833626.html
Copyright © 2011-2022 走看看