dubbo项目consumer和provider的启动顺序问题
原创 2019-11-11 12:42 阅读(3352)次
dubbo项目服务调用端consumer默认需要服务提供端provider先启动才能启动,否则会报错:
Failed to check the status of the service xxxx. No provider available for the service xxxx
这是由于consumer端默认会检查项目里服务提供者是否可用,所以这要求dubbo项目之间要有启动顺序,这显然不符合我们日常开发与部署,谁知道微服务中谁调用谁呢,况且项目之间并不是单纯的服务提供者与调用者,可能会杂在一起,不过dubbo已经提供了关闭这个检查的配置
它可以配置在@Reference注解上
@Reference(check=false)
StockRpcService stockRpcService;
也可以配置在consumer项目配置中
dubbo:
consumer:
check: true
protocol:
port: 20880
registry:
address: zookeeper://127.0.0.1:2181
scan:
base-packages: com.mydubbo.service
显然,我们用的是后者,这样项目只配置一次就好
配置完后我们的dubbo项目就不会有启动依赖了,随便先启动哪个都可以了