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配置:
4.2 启动结果:
4.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 "