• 徐希炎
    2019-08-01
    老师,你好:
    我的业务方法继承了HystrixCommand后,相当于我把HystrixCommand中的excute拿到了子类来执行,因此可以用到hystrix框架预先定制的一些列方法,但是run方法是我自己编写的,hystrix是如何获得到run方法执行的结果,难道就是靠有没有发生异常判断吗。那这样的话,我的业务方法是不是就不能显示的去捕获异常,就算捕获了,还得再跑出来?

    作者回复: HystrixCommand实际是使用命令模式,你继承实现的Run方法是有返回值的,你把要执行的代码包在Run方法里头,正常执行Hystrix就会获得你的执行结果,异常时Hystrix会捕获,你可以在Run方法里头捕获异常和处理,但是这样Hystrix就没有办法再帮你做统一的异常处理了,也就失去了使用Hystrix的部分好处(异常监控熔断限流等)。如果确实业务需要,你可以自己根据需要处理一部分异常,其它的交给Hystrix去处理,这样还是可以获得Hystrix的熔断等好处。

    
    
  • 谷大羽
    2019-07-05
    老师你好,我想请教一下,zuul两个节点,如果其中一个zuul服务down了,此时的熔断应该怎么做?是不是只能靠Eureka的的心跳检测?

    作者回复: 你好,没有完全理解你的问题。zuul一般躲在负载均衡器LB(比如F5 或者Nginx)后面,可以实现横向多节点HA部署,如果zuul有节点down,前置的LB会检查到,LB自动拉出即可,不存在熔断问题。

     1
    
我们在线,来聊聊吧