hystrix应用介绍(二)

上篇博客中讲了hystrix在公司中的一些应用场景,由于保密的原因没办法贴出优化的代码,这里专门写一篇hystrix代码的demo,供大家在使用的过程中快速上手

Hystrix有两个请求命令 HystrixCommandHystrixObservableCommand

  HystrixCommand用在依赖服务返回单个操作结果的时候。有两种执行方式

    -execute():同步执行。从依赖的服务返回一个单一的结果对象,或是在发生错误的时候抛出异常。

    -queue();异步执行。直接返回一个Future对象,其中包含了服务执行结束时要返回的单一结果对象。

  HystrixObservableCommand 用在依赖服务返回多个操作结果的时候。它也实现了两种执行方式

    -observe():返回Obervable对象,他代表了操作的多个结果,他是一个HotObservable

    -toObservable():同样返回Observable对象,也代表了操作多个结果,但它返回的是一个Cold Observable

下边以注解和非注解两种形式演示

第一步引入所依赖的pom

      <dependency>
            <groupId>com.netflix.hystrix</groupId>
            <artifactId>hystrix-core</artifactId>
            <version>${hystrix-version}</version>
        </dependency>
        <dependency>
            <groupId>com.netflix.hystrix</groupId>
            <artifactId>hystrix-metrics-event-stream</artifactId>
            <version>${hystrix-version}</version>
        </dependency>
        <dependency>
            <groupId>com.netflix.hystrix</groupId>
            <artifactId>hystrix-javanica</artifactId>
            <version>${hystrix-version}</version>
        </dependency>
        <dependency>
            <groupId>com.netflix.hystrix</groupId>
            <artifactId>hystrix-servo-metrics-publisher</artifactId>
            <version>${hystrix-version}</version>
        </dependency>

第二步:在spring的xml配置中引入相关注解

    <!-- 配置成注解方式寻找要被代理的对象 -->
    <aop:aspectj-autoproxy/>
    <!-- hystrix -->
    <bean id="hystrixAspect" class="com.netflix.hystrix.contrib.javanica.aop.aspectj.HystrixCommandAspect"></bean>
    <context:annotation-config/>

猜你喜欢

转载自www.cnblogs.com/liyongliang/p/10636129.html
今日推荐