Java 8 Ratpack、RxJava、Hystrix和Blocking-线程池和边界

Java 8 Ratpack、RxJava、Hystrix和Blocking-线程池和边界,java-8,rx-java,nonblocking,hystrix,ratpack,Java 8,Rx Java,Nonblocking,Hystrix,Ratpack,我正在使用ratpack,与ratpack hystrix一起使用,并具有类似以下内容: return RxRatpack.promiseSingle( new HystrixObservableCommand<List<VersionedArtifactMetadata>>( HystrixObservableCommand.Setter.withGroupKey(GROUP_KEY).andCommandKey( Hystr

我正在使用
ratpack
,与
ratpack hystrix
一起使用,并具有类似以下内容:

return RxRatpack.promiseSingle(
    new HystrixObservableCommand<List<VersionedArtifactMetadata>>(
        HystrixObservableCommand.Setter.withGroupKey(GROUP_KEY).andCommandKey(
          HystrixCommandKey.Factory.asKey("search"))) {
            @Override
            protected Observable<List<VersionedArtifactMetadata>> construct() {
              return RxRatpack.observe(
                Blocking.get(() -> {
                  return httpClient.request(...);
                }
            }
          }.toObservable());
    ));
返回RxRatpack.promisesSingle(
新的HystrixObservableCommand(
HystrixObservableCommand.Setter.withGroupKey(GROUP_KEY)和CommandKey(
HystrixCommandKey.Factory.asKey(“搜索”)){
@凌驾
受保护的可观察构造(){
返回RxRatpack。观察(
阻塞。获取(()->{
返回httpClient.request(…);
}
}
}.toObservable());
));
执行情况如何?我假设,考虑到
Promise
observeable
之间的集成,它们无缝地共享同一个非阻塞线程池?Hystrix如何与上述线程池集成

当我说鉴于上述情况,我有以下几点时,我的理解是否正确:

return RxRatpack.promiseSingle(
    new HystrixObservableCommand<List<VersionedArtifactMetadata>>(
        HystrixObservableCommand.Setter.withGroupKey(GROUP_KEY).andCommandKey(
          HystrixCommandKey.Factory.asKey("search"))) {
            @Override
            protected Observable<List<VersionedArtifactMetadata>> construct() {
              return RxRatpack.observe(
                Blocking.get(() -> {
                  return httpClient.request(...);
                }
            }
          }.toObservable());
    ));
  • 用于管理非阻塞工作的线程池(用于
    Promise
    Observable
  • Hystrix线程池
  • 用于管理阻塞工作的线程池(用于
    Promise
    Observable
  • HTTP连接池
当执行上述代码时,它是否首先创建一个
Promise
(在阻塞线程池上),将其转换为一个可观察的(仍在阻塞线程池上执行),将其包装在一个Hystrix命令(在Hystrix线程池上执行),包装在一个
可观察的
(在非阻塞线程池上执行)中,包装在
承诺中(仍在非阻塞线程池上执行)。是这样吗

另外,如何根据线程池之间的关系调整线程池的大小?与Ratpack相比,Hystrix one是否需要一定尺寸

谢谢