dubbo配置(一)
目录
1.配置原则
2.重试次数
3.超时时间
(1)消费端
(2)服务端
(3)配置原理
(4)版本号
1.配置原则
JVM 启动 -D 参数优先,这样可以使用户在部署和启动时进行参数重写,比如在启动时需改变协议的端口。
XML 次之,如果在 XML 中有配置,则 dubbo.properties 中的相应配置项无效。
Properties 最后,相当于缺省值,只有 XML 没有配置时,dubbo.properties 的相应配置项才会生效,通常用于共享公共配置,比如应用名。
2.重试次数
失败自动切换,当出现失败,重试其它服务器,但重试会带来更长延迟。可通过 retries="2" 来设置重试次数(不含第一次)
重试次数配置如下:
<dubbo:service retries="2" />
或
<dubbo:reference retries="2" />
或
<dubbo:reference><dubbo:method name="findFoo" retries="2" />
</dubbo:reference>
3.超时时间
由于网络或服务端不可靠,会导致调用出现一种不确定的中间状态(超时)。为了避免超时导致客户端资源(线程)挂起耗尽,必须设置超时时间。
(1)消费端
全局超时配置
<dubbo:consumer timeout="5000" />
指定接口以及特定方法超时配置
<dubbo:reference interface="com.foo.BarService" timeout="2000"><dubbo:method name="sayHello" timeout="3000" />
</dubbo:reference>
(2)服务端
全局超时配置
<dubbo:provider timeout="5000" />
指定接口以及特定方法超时配置
<dubbo:provider interface="com.foo.BarService" timeout="2000"><dubbo:method name="sayHello" timeout="3000" />
</dubbo:provider>
(3)配置原理
dubbo推荐在Provider上尽量多配置Consumer端属性:
服务的提供者,比服务使用方更清楚服务性能参数,如调用的超时时间,合理的重试次数,等等
在Provider配置后,Consumer不配置则会使用Provider的配置值,即Provider配置可以作为Consumer的缺省值。否则,Consumer会使用Consumer端的全局设置,这对于Provider不可控的,并且往往是不合理的
配置的覆盖原则
方法级配置别优于接口级别,即小Scope优先
Consumer端配置 优于 Provider配置 优于 全局配置
最后是Dubbo Hard Code的配置值(见配置文档)
(4)版本号
当一个接口实现,出现不兼容升级时,可以用版本号过渡,版本号不同的服务相互间不引用。
可以按照以下的步骤进行版本迁移:
在低压力时间段,先升级一半提供者为新版本
再将所有消费者升级为新版本
然后将剩下的一半提供者升级为新版本
老版本服务提供者配置:
<dubbo:service interface="com.foo.BarService" version="1.0.0" />
新版本服务提供者配置:
<dubbo:service interface="com.foo.BarService" version="2.0.0" />
老版本服务消费者配置:
<dubbo:reference id="barService" interface="com.foo.BarService" version="1.0.0" />
新版本服务消费者配置:
<dubbo:reference id="barService" interface="com.foo.BarService" version="2.0.0" />
如果不需要区分版本,可以按照以下的方式配置:
<dubbo:reference id="barService" interface="com.foo.BarService" version="*" />
dubbo配置(一)相关推荐
- dubbo配置参考手册
配置参考手册 <dubbo:service/> <dubbo:reference/> <dubbo:protocol/> <dubbo:registry/&g ...
- Dubbo(八)使用配置类方式实现服务提供者消费者dubbo配置
本文章基于改dubbo系列前两篇文章中项目进行调整修改 Dubbo(六)使用SpringBoot搭建dubbo服务提供者工程 Dubbo(七)使用SpringBoot搭建dubbo消费者工程 主要调整 ...
- dubbo 配置及分析
一.配置 <!-- Dubbo --> <dependency> <groupId>com.alibaba</groupId> <artifact ...
- Dubbo配置加载问题
问题引出,从dubbo2升级到了dubbo3版本,出现了一些消费方调用超时的现象,通过日志发现异常信息中的timeout竟然是1000ms,明明在暴漏接口的时候指定了超时时间,为什么没有生效. 经过d ...
- DUBBO配置规则详解
DUBBO在配置这一块做的确实很完美,提供很很多参数,以及提供了多种渠道.下面进入正题,看看DUBBO怎么加载配置的.在讲这些之前,先给大家介绍一下在DUBBO源码层面定义了哪些类来存储各个模块的配置 ...
- dubbo配置参考手册,dubbo各个标签解析
配置参考手册 <dubbo:service/> <dubbo:reference/> <dubbo:protocol/> <dubbo:registry/&g ...
- dubbo配置多协议
多协议 Dubbo 允许配置多协议,在不同服务上支持不同协议或者同一服务上同时支持多种协议. 不同服务不同协议 不同服务在性能上适用不同协议进行传输,比如大数据用短连接协议,小数据大并发用长连接协议 ...
- Dubbo 配置http协议
一 服务提供者 在服务提供者中,需要添加 注释为http协议支持 的依赖jar包,修改启动类的启动方式,添加provider.xml配置 <?xml version="1.0" ...
- dubbo配置属性-快捷查询表
1.服务端配置属性 xml中服务端全局配置 标签:<dubbo:service /> 属 性 类 型 是否必填 缺省值 描 述 interface class 必填 无 服务接 ...
最新文章
- Alibaba代码规范插件、FindBugs插件安装及详解,IDEA插件安装,代码规范,代码查错,代码格式规范
- 小米开源FALSR算法:快速精确轻量级的超分辨率模型
- python中判断字符是否为中文
- 也玩有道难题的双立方数问题:Python 版解法
- 随笔编号-09 批量导入数据(Mysql)报MySQL server has gone away 问题的解决方法
- mysql 客服_MySQL
- 广东省计算机媒体大赛,广东省大学生计算机设计大赛
- linuxos或sv独立客户端不支持应用程序打开方式_搞不明白为什么大家都在学习 k8s
- Qt文档阅读笔记-Advanced Signals and Slots Usage解析与实例
- 操作系统知识点大总结【进程同步与互斥】
- 初中节点法分析电路_初三物理电路图解题思路:电路简化原理
- 论文笔记——多源融合SLAM的现状与挑战
- iOS中唯一一款不带开屏广告的日历
- oracle用户LOCKED(TIMED)原因及解决
- oracle拆分分区语法详解大全_Oracle分区表详解
- maven install报The forked VM terminated without saying properly goodbye. VM crash or System.exit call
- Ant Design - Authorized
- WIN10安装与升级的方法
- 新手小白之初识JAVA,随堂笔记
- ML-Agents学习之RollerBall项目