学习目标
-
手写Mini版的Hystrix
-
RxJava知识梳理
-
Hystrix的核心流程分析
-
源码验证
第1章 手写Mini版
上文中已经给大家介绍过了Hystrix的核心功能和使用了,它无非就是提供了熔断、降级、隔离等功能,其中熔断和隔离是目的,降级是结果。在使用过程中其实最核心的有三个注解:@EnableHystrix、@HystrixCommand和@HystrixCollapser。可以通过注解 @HystrixCommand、或者继承 HystrixCommand 来实现降级,以及一些请求合并等操作。
在正式讲解原理之前,我们首先要明确一个点,当采用 @HystrixCommand 注解来实现服务降级,在Hystrix 的内部是采用AOP的方式进行拦截处理请求的,这块内容,后面也会详细分析。我们这里就先来实现一下简易版的 Hystrix 来体会一下,主要分为以下步骤
-
定义自己的@HystrixCommand 注解。
-
实现拦截请求的处理逻辑。
-
测试调用。
-
自定义注解
@Target({ElementType.METHOD}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface MyHystrixCommand { //默认超时时间 int timeout() default 1000; //回退方法 String fallback() defa