开启dubbo之旅——启动时检查

正经学徒,佛系记录,不搞事情

基于上文:https://blog.csdn.net/qq_31748587/article/details/84878167

官方解释:Dubbo 缺省会在启动时检查依赖的服务是否可用,不可用时会抛出异常,阻止 Spring 初始化完成,以便上线时,能及早发现问题。

启动时检查分为两类:

  • 服务订阅成功:进一步判断服务提供者是否提供相应服务,涉及关键词是 reference consumer
  • 服务订阅失败:注册订阅时就已经失败,如注册中心未启动,涉及关键词是 registry

未设置启动时检查功能,dubbo默认为true,即默认启动时会进行检查,并报出相应的错误。如果需要修改默认值,可以使用consumer关键词,如果需要对特定的服务单独设置,则使用reference,该值会覆盖consumer关键词设置的值。

另外一个值得注意的地方是:如果使用的是启动时检查,一开始项目启动报错,后面服务恢复的时候,系统还是反射。但如果关闭启动时检查,当服务恢复时,系统会自动连上。

官方建议关闭启动时检查的情况:

测试时,有些服务不关心,或者出现了循环依赖,必须有一方先启动。另外,如果你的 Spring 容器是懒加载的,或者通过 API 编程延迟引用服务,请关闭 check,否则服务临时不可用时,会抛出异常,拿到 null 引用,如果 check="false",总是会返回引用,当服务恢复时,能自动连上。

测试:

  • 未设置启动时检查,即默认启动时检查的情况:

步骤:启动zookeeper,启动服务消费者,但启动服务提供者

如图所示,系统报错反射错误

  • 设置启动时检查

步骤:修改服务消费者端的配置文件:

#设置关闭启动时检查
dubbo.reference.com.mn.user.bs.UserBS.check=false

此时,相同操作下,系统不会报错。

  • 测试开启 启动时检查,服务的联通性

步骤:启动zookeeper,启动服务消费者,但启动服务提供者。

此时系统报错,并且不能请求

启动服务提供者,依然无法请求服务

  • 测试关闭 启动时检查,服务的联通性

步骤:启动zookeeper,启动服务消费者,但启动服务提供者。

此时系统报错,并且不能请求

启动服务提供者,服务可以请求了,说明设置关闭启动时检查,当服务启动时,系统会自动连上

registry同理,判断注册中心是否成功启动,以此决定系统启动时是否抛出异常

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

My name is Red ^^

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值