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

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

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项目就不会有启动依赖了,随便先启动哪个都可以了