问题描述
现在给公司的一个大项目做水平拆分,拆成2个web项目,其中共用的部分使用dubbo调用,都拆完了突然发现一个问题这2个项目a和b,相互之间都有调用,a项目提供接口供b调用,同时a也调用b项目提供的接口,那么问题来了我启动a的时候,由于b还没有启动,在spring加载的时候会报错No provider available for the service同样我单独启动b的时候也是一样,这样就造成了单独启动哪个都启动不来的情况。。这个怎么解决?
解决方案
dubbo启动有一个选项:即是否检查依赖的服务是否启动,把这个选项置为false就可以了。这个是从文档上面摘下来的:<dubbo:reference interface="com.foo.BarService" check="false" />
解决方案二:
同学,这种情况考虑下是否可以从业务角度去避免该问题,循环dubbo依赖从技术角度去解决是很乏力的。
解决方案三:
1. 改dubbo源码, 在启动时,将未注入成功的dubbo service先给存下来2. 消费端增加aop,调用方法之前再次尝试注入
时间: 2024-09-14 01:26:13