zoukankan      html  css  js  c++  java
  • hystrix(5) 使用

      这一节我们开始了解hystrix执行的主流程,在讲解主流程之前,我们先来看一下怎么使用hystrix。

    引入jar

    <dependency>
       <groupId>com.netflix.hystrix</groupId>
       <artifactId>hystrix-core</artifactId>
       <version>1.5.10</version>
    </dependency>

    继承HystrixCommand

      public HelloWorldHystrixCommand() {
      super(HystrixCommandGroupKey.Factory.asKey("ExampleGroup"));
      }
      @Override
      protected String run() {
        return "Hello ";
      }
      @Override     
      protected String getFallback() {
             return "Hello Fallback";     
      }
    }

      run为需要执行的命令,在执行过程中的发送异常,则会触发getFallback来达到优雅降级的目的。 出于对报告和提醒的目的,group这个键用于对命令进行分组。

    调用Hystrix命令
      有四种方法执行命令:
    String s = new CommandHelloWorld("Bob").execute();
    Future<String> s = new CommandHelloWorld("Bob").queue();
    Observable<String> s = new CommandHelloWorld("Bob").observe();
    Observable<String> s = new CommandHelloWorld("Bob").toObserve();
    • execute-同步执行,等待返回结果
    • queue-异步执行,获得一个Future,通过Future获取结果.
    • observe-异步执行,获得一个Observable,通过Observable获取结果。
    • toObservable-异步执行,获得一个Observable,通过Observable获取结果,与observe不同的时,该Observable在第一次监听执行,后面的监听者将接收不到之前发生的消息,而observe方法获取的Observable,在方法调用时执行,后面的监听者可以接收到之前发生的消息。

       当调用这四个方法时,最终会执行run方法,并返回执行的结果,如果在执行过程中发生异常就会调用fallback方法,返回结果。

  • 相关阅读:
    Python打包方法——Pyinstaller
    在线检测显示器屏幕尺寸
    python_分布式进程中遇到的问题
    软件测试面试题(一)
    Django在根据models生成数据库表时报 __init__() missing 1 required positional argument: 'on_delete'
    mac系统 安装 IPython
    京东自动抢茅台脚本 Python
    CMake使用总结(一)
    小白安装eclipse插件—>testNG
    离线安装eclipse-testNG插件
  • 原文地址:https://www.cnblogs.com/zhangwanhua/p/8241678.html
Copyright © 2011-2022 走看看