关于dubbo的provider和consumer都配置timeout超时时间的情况
来源:互联网 发布:火箭队球迷 知乎 编辑:程序博客网 时间:2024/05/29 18:10
关于dubbo的provider和consumer都配置timeout超时时间的情况
在dubbo的provider和consumer的配置文件中,如果都配置了timeout的超时时间,dubbo默认以consumer中配置的时间为准(经 坤哥玩CSDN 提醒,之前说以provider为准是错误的)。
经验证是这样的,
provider.xml的配置:
<dubbo:service timeout="4000" retries="0" interface="com.dingding.tms.bms.service.BillingZfbCodOrderService" ref="billingZfbCodOrderService" registry="globalRegistry"/>
conusmer中的配置:
<dubbo:reference id="billingInterService" interface="com.dingding.tms.bms.service.BillingInterService" protocol="dubbo" check="false" registry="globalRegistry" timeout="3000"/>
最后这个service在调用时的超时时间就是3秒。
另外,
1,consumer会在超过3秒时得到一个调用超时的异常。
2,provider中代码的执行不会因为超时而中断,在执行完毕后,会得到一个dubbo的警告。
在dubbo的用户手册中,对配置有这样的推荐用法:
在Provider上尽量多配置Consumer端属性
原因如下:
- 作服务的提供者,比服务使用方更清楚服务性能参数,如调用的超时时间,合理的重试次数,等等
- 在Provider配置后,Consumer不配置则会使用Provider的配置值,即Provider配置可以作为Consumer的缺省值。否则,Consumer会使用Consumer端的全局设置,这对于Provider不可控的,并且往往是不合理的
- PS: 配置的覆盖规则:1) 方法级配置别优于接口级别,即小Scope优先 2) Consumer端配置 优于 Provider配置 优于 全局配置,最后是Dubbo Hard Code的配置值(见配置文档)
<dubbo:service interface="com.alibaba.hello.api.HelloService" version="1.0.0" ref="helloService"
timeout="300" retry="2" loadbalance="random" actives="0"/>
<dubbo:service interface="com.alibaba.hello.api.WorldService" version="1.0.0" ref="helloService"
timeout="300" retry="2" loadbalance="random" actives="0" >
<dubbo:method name="findAllPerson" timeout="10000" retries="9" loadbalance="leastactive" actives="5" />
<dubbo:service/>
在Provider可以配置的Consumer端属性有:
- timeout,方法调用超时
- retries,失败重试次数,缺省是2(表示加上第一次调用,会调用3次)
- loadbalance,负载均衡算法(有多个Provider时,如何挑选Provider调用),缺省是随机(random)。还可以有轮训(roundrobin)、最不活跃优先(leastactive,指从Consumer端并发调用最好的Provider,可以减少的反应慢的Provider的调用,因为反应更容易累积并发的调用)
- actives,消费者端,最大并发调用限制,即当Consumer对一个服务的并发调用到上限后,新调用会Wait直到超时。在方法上配置(dubbo:method )则并发限制针对方法,在接口上配置(dubbo:service),则并发限制针对服务。
Provider上配置合理的Provider端属性
比如:
<dubbo:protocol threads="200" />
<dubbo:service interface="com.alibaba.hello.api.HelloService" version="1.0.0" ref="helloService"
executes="200" >
<dubbo:method name="findAllPerson" executes="50" />
</dubbo:service>
Provider上可以配置的Provider端属性有:
- threads,服务线程池大小
- executes,一个服务提供者并行执行请求上限,即当Provider对一个服务的并发调用到上限后,新调用会Wait(Consumer可能到超时)。在方法上配置(dubbo:method )则并发限制针对方法,在接口上配置(dubbo:service),则并发限制针对服务。
- 关于dubbo的provider和consumer都配置timeout超时时间的情况
- 关于dubbo的provider和consumer都配置timeout超时时间的情况
- 关于dubbo的provider和consumer都配置timeout超时时间的情况
- 关于dubbo的provider和consumer都配置timeout超时时间的情况
- dubbo配置timeout超时时间
- (27)Dubbo的Provider和consumer(springmvc)搭建完成-goodjob!
- Dubbo学习笔记(三) Provider和Consumer
- urlopen关于超时timeout问题的解释
- Dubbo基础篇_03_简单的Dubbo提供者provider与消费者consumer
- MySQL的timeout超时你遇到过几种情况
- dubbo(provider,consumer)点到点直连配置
- dubbo(provider,consumer)点到点直连配置
- dubbo(provider,consumer)点到点直连配置
- 关于dubbo服务找不到provider的原因
- 异常 dubbo中provider和consumer加载异常 Zookeeper注册
- 由浅入深写java分布式(3) dubbo admin监控dubbo 以及外网consumer找不到provider的问题
- Linux DNS timeout, attempts.---DNS超时,重试的配置
- 在devise中配置 超时重新登录 timeout 的功能
- java队列
- 万历十五年读后感
- 谷歌浏览器插件-jsonView插件
- 窗口2
- 单KEY业务,数据库水平切分架构实践
- 关于dubbo的provider和consumer都配置timeout超时时间的情况
- oracle--3.基本查询
- C++基础知识5
- (猜想)未来触犯法律,可能会限期你上网
- Shell 批量停起库脚本
- android 新增分区以及挂载方法
- 基于FFmpeg+VAAPI的硬件加速渲染技术
- Intel IDEA 系列工具,根据个人习惯做的配置优化
- 深入理解express框架