目录

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配置(一)相关推荐

  1. dubbo配置参考手册

    配置参考手册 <dubbo:service/> <dubbo:reference/> <dubbo:protocol/> <dubbo:registry/&g ...

  2. Dubbo(八)使用配置类方式实现服务提供者消费者dubbo配置

    本文章基于改dubbo系列前两篇文章中项目进行调整修改 Dubbo(六)使用SpringBoot搭建dubbo服务提供者工程 Dubbo(七)使用SpringBoot搭建dubbo消费者工程 主要调整 ...

  3. dubbo 配置及分析

    一.配置 <!-- Dubbo --> <dependency> <groupId>com.alibaba</groupId> <artifact ...

  4. Dubbo配置加载问题

    问题引出,从dubbo2升级到了dubbo3版本,出现了一些消费方调用超时的现象,通过日志发现异常信息中的timeout竟然是1000ms,明明在暴漏接口的时候指定了超时时间,为什么没有生效. 经过d ...

  5. DUBBO配置规则详解

    DUBBO在配置这一块做的确实很完美,提供很很多参数,以及提供了多种渠道.下面进入正题,看看DUBBO怎么加载配置的.在讲这些之前,先给大家介绍一下在DUBBO源码层面定义了哪些类来存储各个模块的配置 ...

  6. dubbo配置参考手册,dubbo各个标签解析

    配置参考手册 <dubbo:service/> <dubbo:reference/> <dubbo:protocol/> <dubbo:registry/&g ...

  7. dubbo配置多协议

    多协议 Dubbo 允许配置多协议,在不同服务上支持不同协议或者同一服务上同时支持多种协议. 不同服务不同协议 不同服务在性能上适用不同协议进行传输,比如大数据用短连接协议,小数据大并发用长连接协议 ...

  8. Dubbo 配置http协议

    一 服务提供者 在服务提供者中,需要添加 注释为http协议支持 的依赖jar包,修改启动类的启动方式,添加provider.xml配置 <?xml version="1.0" ...

  9. dubbo配置属性-快捷查询表

    1.服务端配置属性 xml中服务端全局配置 标签:<dubbo:service /> 属    性 类 型 是否必填 缺省值 描    述 interface class 必填 无 服务接 ...

最新文章

  1. Alibaba代码规范插件、FindBugs插件安装及详解,IDEA插件安装,代码规范,代码查错,代码格式规范
  2. 小米开源FALSR算法:快速精确轻量级的超分辨率模型
  3. python中判断字符是否为中文
  4. 也玩有道难题的双立方数问题:Python 版解法
  5. 随笔编号-09 批量导入数据(Mysql)报MySQL server has gone away 问题的解决方法
  6. mysql 客服_MySQL
  7. 广东省计算机媒体大赛,广东省大学生计算机设计大赛
  8. linuxos或sv独立客户端不支持应用程序打开方式_搞不明白为什么大家都在学习 k8s
  9. Qt文档阅读笔记-Advanced Signals and Slots Usage解析与实例
  10. 操作系统知识点大总结【进程同步与互斥】
  11. 初中节点法分析电路_初三物理电路图解题思路:电路简化原理
  12. 论文笔记——多源融合SLAM的现状与挑战
  13. iOS中唯一一款不带开屏广告的日历
  14. oracle用户LOCKED(TIMED)原因及解决
  15. oracle拆分分区语法详解大全_Oracle分区表详解
  16. maven install报The forked VM terminated without saying properly goodbye. VM crash or System.exit call
  17. Ant Design - Authorized
  18. WIN10安装与升级的方法
  19. 新手小白之初识JAVA,随堂笔记
  20. ML-Agents学习之RollerBall项目

热门文章

  1. python——闭包
  2. 9-Building FIP images with support for Trusted Board Boot
  3. 12- Library at ROM
  4. mk_trustonic.mk编译脚本
  5. 强网杯2019 Copperstudy
  6. python实现一个字典
  7. 160个Crackme014
  8. Objective-c 字符串的拼接
  9. VScode使用python的yapf库
  10. Codeforces Round #744 (Div. 3)【A-D E的题解】