DUBBO的循环依赖和解决
描述:有分布式项目A和B,一个原子操作,需要先调用A的a方法,再调用B的b方法,而B的b方法又依赖于A的c方法。于是,A和B形成一个环路,A依赖于B,B又依赖于A,先启动项目A,B缺少依赖,先启动项目B,A缺少依赖。
解决方案 : Dubbo缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,提示连接不到provider. dubbo:reference 默认check=true,修改为false,关闭检查,使dubbo懒依赖。 即当该service在被使用时,才去连接,允许服务临时失联。
<dubbo:reference interface="com.foo.BarService" check="false" />
//springboot基于注解方式时,在注解中修改
@Reference(url = ORDER_PROTOCOL_ADDR,check = false)
public ShopOrderServer shopOrderServer;
网友评论