@Reference设置重试,超时,容错属性无效
问题
使用@Reference 注解的时候,发现设置retries=0,cluster=“failfast” 还是会出现重试。
原因分析
由于在项目中多次通过@reference注解注入同一个dubbo接口,在spring中这个dubbo接口在创建的时候默认是单列的,此时就会涉及到bean的加载顺序问题,
比如 A,B,C 三个类都引用了D服务,每个配置的@reference参数都不一样,此时,在项目启动时 A,B,C的实例化顺序也决定了D服务的配置(重试,集群容错,超时等), 假如A 先创建,B和C创建的时候 就会直接从spring中取D服务,而不是重新创建。
怎么解决?
集中管理dubbo服务,通过抽取配置类的方式。