Hystrix中未使用来自不同线程池键的线程

时间:2019-07-19 11:24:06

标签: java spring threadpool hystrix

我创建了两个类-ClassA和ClassB。这两个类中的方法均使用@HystrixCommand注释,并带有不同的线程池键。 A类-

 @HystrixCommand(threadPoolKey = "execA")

  public void callClassB() {

    System.out.println("Inside callClassB() Before " + Thread.currentThread().getName());
    ClassB b = new ClassB();
    b.execute();
    System.out.println("Inside callClassB() After" + Thread.currentThread().getName());
  }

B级

  @HystrixCommand(threadPoolKey = "execB")
  public void execute() {

    System.out.println("Inside ClassB execute() with thread - " + Thread.currentThread().getName());

    for (int i = 0; i < 1000; i++ ) {

    }
}

我从Controller调用a.callClassB();其中a是classA的实例。 但是,在日志中,classA和classB都使用相同的线程。

即使在配置中添加了@HystrixProperty(name = "execution.isolation.strategy", value = "THREAD")}之后,仍在使用同一线程。但是,根据Hystrix文档,如果隔离策略为SEMAPHORE,则使用同一线程;如果隔离策略为THREAD,则使用不同的线程

0 个答案:

没有答案