Hystrix原理之命令模式的类图

举报
qingting-fly 发表于 2021/09/26 20:50:52 2021/09/26
【摘要】 看一下前面几篇文章介绍的类的相关类图:通过代码和类图,有印象的读者一定能想起,这是设计模式中的命令模式,HystrixInvokable是Hystrix Command的标记接口,继承了该接口的类都是可以被执行的Hystrix Command,其提供具体实现的接口为HystrixExecutable,用于同步执行和异步执行命令;HystrixObservable用于响应式执行命令(异步回调)...

看一下前面几篇文章介绍的类的相关类图:
HystrixInvokable.png

通过代码和类图,有印象的读者一定能想起,这是设计模式中的命令模式,HystrixInvokable是Hystrix Command的标记接口,继承了该接口的类都是可以被执行的Hystrix Command,其提供具体实现的接口为HystrixExecutable,用于同步执行和异步执行命令;HystrixObservable用于响应式执行命令(异步回调),这些是Command以及ConcreteCommandCommandExecutor用于调用HystrixInvokable执行命令,相当于InvokerHystrixCommandFactory用于生成命令,而HystrixCommandAspect相当于命令调用的客户端情景类clientCommandAction中持有fallback的方法或者被@HystrixCommand注解的方法,相当于Receiver

对比一下命令模式的通用类图:

Command.png

现在一起来了解一下Hystrix中整个命令的结构体系,以及对其中的关键实现代码进行理解。

首先关注一下类图:

HystrixCommand.png
虽然类图很复杂,但是最终的实现类只有三个,分别是GenericCommand,同步或者异步执行命令;BatchHystrixCommand,请求合并操作;以及GenericObservableCommand,异步回调执行命令。其中以上三个类之中的关键的实现都在AbstractCommand这个抽象类,所以AbstractCommand将是下面源码讲解中的重点。

接下来的文章让我们来一步步来查看这些类的相关实现。

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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