默认情况下,dubbo将检查从属服务在启动时是否可用。当它不可用时,它将抛出异常以防止Spring完成初始化,以便您可以在发布应用程序之前尽早发现问题,默认设置:check=true
。
你可以关闭检查check=false
。例如,某些服务在您运行测试时并不关心它,或者您必须首先因为循环依赖而启动它。
此外,如果您的Spring bean是延迟加载的,或者您使用API编程延迟参考服务,请关闭检查,否则服务将在服务暂时不可用时抛出异常,然后获取空引用。如果配置check=false
,您可以获得参考。恢复服务后,服务可以自动重新连接。
一以下为Dubbo官网提供的示例:
使用spring配置文件
禁用服务的启动检查(在未提供提供程序时抛出一些异常/错误):
<dubbo:reference interface = "com.foo.BarService" check = "false" />
禁用所有服务的启动检查(未提供时抛出一些异常/错误):
<dubbo:consumer check = "false" />
禁用注册中心启动检查(注册订阅失败错误):
<dubbo:registry check="false" />
使用dubbo.properties
dubbo.reference.com.foo.BarService.check = false
dubbo.reference.check = false
dubbo.consumer.check = false
dubbo.registry.check = false
使用-D参数
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
,强制更改所有引用的检查值,即使配置有声明,也会被覆盖。
dubbo.consumer.check=false
默认值为check
。如果配置中有明确的声明,例如<dubbo:reference check =“true”/>` ,它将不会受到影响。
dubbo.registry.check=false
,上面的两个配置是表示订阅的成功。如果在提供程序列表的注册失败时也允许启动订阅为空,则需要使用此配置。系统将定期在后台重试