本文基于dubbo 2.7.5版本代码

dubbo的客户端在启动的时候,默认检查是否有可用的远程服务,如果没有dubbo报如下异常:

java.lang.IllegalStateException: Failed to check the status of the service XXX. No 
provider available for the service test.Process from the url 
zookeeper://localhost:2181/.....(省略) to the consumer 192.168.0.110 use dubbo version 2.7.5 

可以通过设置ReferenceConfig或者ConsumerConfig的check属性值为false,跳过该项检查,可以使用如下配置:

//spring配置文件里面设置如下
dubbo.consumer.check=false

如果设置ConsumerConfig的check为false,则关闭该Consumer下所有服务检查。
也可以设置关闭单个服务检查:

@Reference(check=false)

网上有介绍说设置RegistryConfig的check为false,可以跳过对注册中心的检查,但是经过测试该参数不起作用,经过对代码检查,发现代码中没有对RegistryConfig的isCheck方法的调用,所以也就无从获取check属性值。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐