SpringBoot启动不检查依赖的Dubbo服务

1.如果是我么你自己经手的项目,可能知道Dubbo服务的启动顺序,但别人看你的项目不一定知道启动顺序,所以为了不必要问题,我们还是要配置一下不检查依赖的Dubbo服务。

2.有三个地方可以设置不检查:

1)dubbo.reference.check=false
强制不检查,级别很高
2)dubbo.consumer.check=false
一般我们配置的不检查dubbo服务
3)dubbo.registry.check=false
注册服务检查,zookeeper检查服务是否存在

3.一般有三种配置,xml,properties,yml;
3.1 xml配置:

<dubbo:reference interface="***Service" check="false" />
<dubbo:consumer check="false" />
<dubbo:registry check="false" />

3.2 properties配置:

dubbo.reference.check=false
dubbo.consumer.check=false
dubbo.registry.check=false

3.3 xml配置:

spring:
  dubbo:
  	registry:
      address: zookeeper://localhost
      port: 2181
      check: false
    protocol:
      name: dubbo
      port: 20880
    consumer:
      check: false
      timeout: 5000
      retries: 2
    reference:
      check: false

4.尽管有了如上的配置,也不一定能够解决。
4.1 yml配置:
SpringBoot启动不检查依赖的Dubbo服务_第1张图片
4.2 启动结果:
SpringBoot启动不检查依赖的Dubbo服务_第2张图片
4.3 解决办法:
在项目启动的配置中加上如下图红色圈中的参数,解决:
SpringBoot启动不检查依赖的Dubbo服务_第3张图片
最后启动成功:
成功图片
4.4 以上本地启动ok,在linux服务器需要在启动的start.sh文件中配置一下,在 JAVA_OPTS 变量中加入:-Ddubbo.consumer.check=false,如下:

JAVA_OPTS=" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true -Ddubbo.shutdown.hook=true -Ddubbo.consumer.check=false "

你可能感兴趣的:(分布式相关)