dubbo从入门到精通 常用的dubbo配置,启动检查、超时、配置覆盖关系(九)
1 启动检查
一 不进行相关配置,不启动服务提供者,不远程调用方法,单纯的启动消费者。(直接报错)


二 进行相关配置,不启动服务提供者,不远程调用方法,单纯的启动消费者。(正常启动)


三 配置详解(二者选一)
<!-- 关闭单个接口调用的启动检查 关了之后没有服务者不报错-->
<dubbo:reference interface="com.atguigu.gmall.service.UserService"
id="userService" check="false" >
<!-- <dubbo:method name="getUserAddressList" timeout="1000"></dubbo:method> -->
</dubbo:reference>
<!-- 关闭所有服务的启动检查 关了之后没有服务者不报错-->
<dubbo:consumer check="false" />
2 超时&配置覆盖关系
消费者调用服务提供方时,在指定的时间内没有数据返回,就立即终止。
一 服务提供方接口睡4000ms,消费者timeout设置3000ms (规定时间内无数据返回,终止调用)


二 服务提供方接口睡4000ms,消费者timeout设置5000ms (规定时间内有数据返回,正常调用)


三 配置优先级
不同粒度配置的覆盖关系
以 timeout 为例,下图显示了配置的查找顺序,其它 retries, loadbalance, actives 等类似:
- 方法级优先,接口级次之,全局配置再次之。
- 如果级别一样,则消费方优先,提供方次之。

四 配置优先级测试(方法级timeout 1000ms 接口5000ms 服务提供方还是睡4000ms 正常 方法级大于接口级别 超时调用失败,1000ms 生效)


全局配置最弱
<dubbo:consumer check="false" timeout="5000"/>
四 配置优先级测试(服务提供方睡4000ms 超时timeout 设置 1000ms 消费者超时设置5000ms ,发现调用成功 5000ms 生效 可见 消费者配置>提供者配置)



也可以统一设置服务提供方的全局配置 优先级和消费者一样
<!--统一设置服务提供方的规则 --> <dubbo:provider timeout="1000" />
五 配置优先级测试(服务提供方睡4000ms 超时精确方法级timeout 设置 1000ms 消费者超时接口级设置5000ms ,发现调用失败 1000ms 生效(调用失败) 可见如果级别一样,则消费方优先,提供方次之。)


发现调用失败 提供者里的方法级的timeout 生效了 消费者里的接口级没生效


浙公网安备 33010602011771号