本文基于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属性值。