具体报错如下
Caused by: java.lang.IllegalStateException: Failed to check the status of the service com.tanhua.dubbo.api.UserInfoApi. No provider available for the service com.tanhua.dubbo.api.UserInfoApi from the url spring-cloud://localhost:9090/org.apache.dubbo.registry.RegistryService?..
本来这个项目第一次使用前是正常的,但是当我关掉项目,第二次启动时无论如何不能启动,
!(一)错误原因:
从错误中我们可以看出这个服务在远程调用userInfoApi时出现了问题
!(二)解决思路如下:
根据一位博主所言:
Dubbo服务有依赖时,如A依赖B。B依赖C,那必须要按顺序先启动C,再启动B,最后再启动A。不然A,B都无法启动。会报错Injection of @Reference dependencies is failed;导致应用无法启动。
如图关系演示
!(三)错误原因:
(1)
我在使用两个生产者的时候(第三个是消费者)一般情况下我第一个服务调用第二个服务,我只需要第二个服务先启动,然后启动第一个服务就可以了,反之亦然。
(2)
但我这边我不仅第一个服务调用了第二个服务,而且第二个服务也同时调用了第一个服务,那么这个时候到底应该谁先启动才能正常启动,答案是双方都无发正常启动,这就导致了我现在这种情况,无论如何服务无法正常启动。
!(四)解决办法
这位博主也给出了正确的写法就是我们在调用时使用的注解:
(1)
@Reference注解上添加check=false属性即可
(2)
我这边用的是 @DubboReference(check=false)
效果相同
所借鉴的原博主链接:
https://blog.csdn.net/q283614346/article/details/103401189?ops_request_misc=&request_id=&biz_id=102&utm_term=from%20the%20url%20spring-cloud://lo&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0-103401189.142v9pc_search_result_control_group,157v4control&spm=1018.2226.3001.4187

