Dubbo高级配置:启动时检查与异常处理
144 浏览量
更新于2024-07-15
收藏 263KB PDF 举报
在Dubbo高级配置学习中,我们关注的是启动时服务检查机制。Dubbo默认情况下会在启动过程中对依赖的服务进行可用性检查,如果发现服务不可用,它会抛出异常,防止Spring容器的初始化,以便在部署时尽早发现并解决问题。这个检查机制的开关默认设置为`check=true`。
对于那些采用懒加载Spring容器或者需要延迟服务引用的应用场景,如果服务暂时不可用,开启检查可能导致应用崩溃,因为会抛出异常并返回`null`引用。为了避免这种情况,可以将`check`属性设置为`false`,这样即使服务未就绪,也能继续初始化,当服务恢复时,Dubbo会自动连接。
在配置上,有两种方式来关闭启动时检查。一是通过XML配置,例如:
- 对于特定服务的检查: `<dubbo:reference interface="com.foo.BarService" check="false" />`
- 关闭所有服务的检查: `<dubbo:consumer check="false" />`
- 关闭注册中心的检查: `<dubbo:registry check="false" />`
另一种方法是使用`.properties`配置文件,例如:
```properties
dubbo.reference.com.foo.BarService.check=false
dubbo.reference.check=false
dubbo.consumer.check=false
dubbo.registry.check=false
```
或者使用命令行参数 `-D`,例如:
```bash
java -Ddubbo.reference.com.foo.BarService.check=false
```
需要注意的是,`dubbo.reference.check=false` 是全局设置,会覆盖任何其他地方对单个引用的检查配置。而`dubbo.consumer.check=false` 和 `dubbo.registry.check=false` 分别设置消费者的默认检查行为和注册中心的检查行为,如果有显式声明(如 `<dubbo:reference check="true" />`),则这些全局设置不会影响这些特定引用。
此外,`check`的值主要影响的是服务订阅后的提供者列表检查,即确认是否能找到至少一个提供者,而不是检查订阅过程是否成功。所以,`dubbo.registry.check=false` 针对的是提供者列表是否为空的情况,而不是整个注册过程的完成与否。理解这些设置对于优化Dubbo应用的健壮性和灵活性至关重要。
2019-01-23 上传
2015-06-12 上传
点击了解资源详情
点击了解资源详情
2023-07-28 上传
2017-07-05 上传
2018-02-05 上传
2016-07-06 上传
2021-03-18 上传
weixin_38705762
- 粉丝: 6
- 资源: 905
最新资源
- MATLAB新功能:Multi-frame ViewRGB制作彩色图阴影
- XKCD Substitutions 3-crx插件:创新的网页文字替换工具
- Python实现8位等离子效果开源项目plasma.py解读
- 维护商店移动应用:基于PhoneGap的移动API应用
- Laravel-Admin的Redis Manager扩展使用教程
- Jekyll代理主题使用指南及文件结构解析
- cPanel中PHP多版本插件的安装与配置指南
- 深入探讨React和Typescript在Alias kopio游戏中的应用
- node.js OSC服务器实现:Gibber消息转换技术解析
- 体验最新升级版的mdbootstrap pro 6.1.0组件库
- 超市盘点过机系统实现与delphi应用
- Boogle: 探索 Python 编程的 Boggle 仿制品
- C++实现的Physics2D简易2D物理模拟
- 傅里叶级数在分数阶微分积分计算中的应用与实现
- Windows Phone与PhoneGap应用隔离存储文件访问方法
- iso8601-interval-recurrence:掌握ISO8601日期范围与重复间隔检查