默认:Dubbo 默认会在启动时检查依赖的服务是否可用,服务不可用时会抛出异常,阻止 Spring 初始化完成,默认值
check="true"
。修改:可以通过设置
check="false"
关闭检查,这样即使依赖的服务不可用时也不会抛出异常。应用场景:如果Spring 容器是懒加载的,或者通过 API 编程延迟引用服务,可以关闭检查。
一、检查类型
- 服务:关闭某个或所有服务的启动时检查
- 注册中心:关闭注册中心启动时检查
二、检查设置方式
2.1 XML
2.1.1 服务
方式一:启动时检查某个服务 (默认check="true"
即没有提供者时报错):
<dubbo:reference interface="com.foo.BarService" check="false" />
方式二:启动时检查所有服务 (默认check="true"
即没有提供者时报错):
<dubbo:consumer check="false" />
2.1.2 注册中心
启动时检查注册中心 (默认check="true"
即没有注册中心时报错):
<dubbo:registry check="false" />
2.2 properties
dubbo.reference.com.foo.BarService.check=false
dubbo.reference.check=false
dubbo.consumer.check=false
dubbo.registry.check=false
2.3 JVM参数
java -Ddubbo.reference.com.foo.BarService.check=false
java -Ddubbo.reference.check=false
java -Ddubbo.consumer.check=false
java -Ddubbo.registry.check=false
注意区别:
dubbo.reference.check=false
:强制改变所有 reference 的 check 值,就算配置中有声明,也会被覆盖。
dubbo.consumer.check=false
:设置 check 的缺省值,如果配置中有显式的声明,如:<dubbo:reference check="true"/>
,不会受影响。