使用命令模式将所有对外部服务的调用包装在HystrixCommand或HystrixObservableCommand对象中,并将该对象放在单独的线程中执行。
HystrixCommand:依赖的服务返回单个操作结果。封装了两种执行方法:execute()同步和queue()异步。
HystrixObservableCommand:依赖的服务返回多个操作结果。也封装了两种执行方法:observe()和toObserve()。observe()返回的是Hot Observe对象。toObserve()返回的是cold observe对象。
什么是Hot Observe?什么是cold observe?
Observable是RxJava中的概念,RxJava可以理解成发布订阅,其中Observable对象是发布者,每个Observable对应一个或多个订阅者。结合命令模式可以这么理解:RxJava在其中实现了一个Invoker的角色,通过发布订阅,将commond和reciever(命令执行者)连接起来。
Hot Observe:发布消息前无论当前Observable对象是否由订阅者,都进行消息发布。
cold observe:发布消息前如果当前Observable对象没有订阅者,则等待订阅者。
原文:https://www.cnblogs.com/yanhui007/p/12641203.html