dubbo项目consumer和provider的启动顺序问题

原创 2019-11-11 12:42 阅读(3580)次

dubbo项目服务调用端consumer默认需要服务提供端provider先启动才能启动,否则会报错:

 Failed to check the status of the service xxxx. No provider available for the service xxxx

这是由于consumer端默认会检查项目里服务提供者是否可用,所以这要求dubbo项目之间要有启动顺序,这显然不符合我们日常开发与部署,谁知道微服务中谁调用谁呢,况且项目之间并不是单纯的服务提供者与调用者,可能会杂在一起,不过dubbo已经提供了关闭这个检查的配置

它可以配置在@Reference注解上

  1. @Reference(check=false)
  2. StockRpcService stockRpcService;

也可以配置在consumer项目配置中

  1. dubbo:
  2. consumer:
  3. check: true
  4. protocol:
  5. port: 20880
  6. registry:
  7. address: zookeeper://127.0.0.1:2181
  8. scan:
  9. base-packages: com.mydubbo.service

显然,我们用的是后者,这样项目只配置一次就好

配置完后我们的dubbo项目就不会有启动依赖了,随便先启动哪个都可以了