Dubbo 依赖检查配置

dubbo的服务启动依赖检查,指的是当启动服务时,如果存在不可用的依赖时,直接抛出异常,从而阻断spring初始化完成,以便在上线时发现问题。

这种看似非常合理的检查,有时候却会给系统带来很大的困扰。比如A的consumer依赖了B的provider,同时B的consumer也依赖A的provider,这是什么?这就叫循环依赖。如果依赖双方均没有启动着的实例(比如所有的服务都挂了,等待重启),那么就会导致A等待B启动后才能启动,反之亦然的死循环问题。

那么这个服务启动依赖检查是靠什么控制的呢?

check=false check=true

check属性一般用到dubbo:reference中,标记一个引用的接口是否在初始化时检查是否可用。

例如:

<dubbo:reference id="testService" 
                 interface="com.test.service.TestService"
                 registry="xxxRegistry"
                 version="1.0.0" 
                 cluster="failover" 
                 timeout="500" 
                 check="false"/>

dubbo:reference缺省使用的是dubbo:consumer中check配置,默认为true,也就是说在没有显示声明一个接口的check=false,那么默认为true,也就是需要检查。

一般情况下,在测试环境中,我们都显示的声明

<dubbo:consumer check="false">

旨在关闭对于引用的dubbo服务的启动检查配置。

在生产环境,我们一般推荐手动将各个无需检查的reference进行显示声明check=false处理,这样可以让开发人员更加清晰自己的系统依赖情况,除非强依赖,否则不建议将该属性设置为true。

或者干脆学习测试环境的做法,将dubbo的默认check设置为false,reference中全部使用缺省配置,不依赖check来发现问题,而是在运行时发现也是十分可取的。

总结:

1.dubbo:reference中check的缺省值来源于dubbo:consumer中的check配置,默认为true。

2.对于check配置,优先级dubbo:reference>dubbo:consumer。

3.dubbo:registry中也有check配置,默认为true,当它为true时,注册中心不存在立即报错,反之,如果你是懒加载,注册中心不存在也不应该影响启动,就可以设置为false。

参考:https://www.jianshu.com/p/5f6e68a8ac0a

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
用户指南 入门 背景 需求 架构 用法 快速启动 服务提供者 服务消费者 依赖 必需依赖 缺省依赖 可选依赖 成熟度 功能成熟度 策略成熟度 配置 Xml配置 属性配置 注解配置 API配置 示例 启动时检查 集群容错 负载均衡 线程模型 直连提供者 只订阅 只注册 静态服务 多协议 多注册中心 服务分组 多版本 分组聚合 参数验证 结果缓存 泛化引用 泛化实现 回声测试 上下文信息 隐式传参 异步调用 本地调用 参数回调 事件通知 本地存根 本地伪装 延迟暴露 并发控制 连接控制 延迟连接 粘滞连接 令牌验证 路由规则 配置规则 服务降级 优雅停机 主机绑定 日志适配 访问日志 服务容器 Reference Config缓存 分布式事务13-1-13 U serG uide-zh -D ubbo -A libaba O pen S esam e code.alibabatech.com /w iki/display/dubbo/U ser+G uide-zh#U serG uide-zh-S im ple% E 7% 9B % 91% E 6% κ 2/100 API参考手册 配置API 注解API 模型API 上下文API 服务API 配置参考手册 <dubbo:service/> <dubbo:reference/> <dubbo:protocol/> <dubbo:registry/> <dubbo:monitor/> <dubbo:application/> <dubbo:module/> <dubbo:provider/> <dubbo:consumer/> <dubbo:method/> <dubbo:argument/> <dubbo:parameter/> 协议参考手册 dubbo:// rmi:// hessian:// http:// webservice:// thrift:// memcached:// redis:// 注册中心参考手册 Multicast注册中心 Zookeeper注册中心 Redis注册中心 Simple注册中心 Simple监控中心 Telnet命令参考手册 ls ps cd pwd trace count invoke status log help clear exit Maven插件参考手册 mvn dubbo:registry mvn dubbo:create 服务化最佳实践 分包 粒度 版本 兼容性 枚举值 序列化 异常 调用 推荐用法 容量规划 基准测试工具包 性能测试报告 测试说明 测试环境 测试目的 测试脚本 测试结果 测试分析 测试覆盖率报告

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值