Gateway 报错 java.lang.IllegalStateException: block()、blockFirst()和blockLast()调用阻塞方法
发布时间
阅读量:
阅读量
导致错误的根源在于,当执行负载均衡调用时,BlockingLoadBalancerClient 会执行一个阻塞操作。
@Override
public <T> ServiceInstance choose(String serviceId, Request<T> request) {
// 略...
// block
Response<ServiceInstance> loadBalancerResponse = Mono.from(loadBalancer.choose(request)).block();
// 略...
return loadBalancerResponse.getServer();
}
进入内部后,可观察到一个名为 blockingGet 的方法,其中包含对当前线程是否属于非阻塞线程(NonBlocking)的判断逻辑。
// BlockingSingleSubscriber 类方法
final T blockingGet() {
if (Schedulers.is
全部评论 (0)
还没有任何评论哟~
