springboot整合dubbo超时配置------2021-11-12

dubbo超时时间设置
dubbo的超时时间我了解的设置方法有多种,可以设置在具体方法上,也可以设置在具体实现类上,还能设置在全局配置中。这几种又分别都可以设置在消费者和生成者里面。

消费者(consumer)设置
1.设置具体方法超时时间
这里代表只是给historyBrowseService的服务中的getFlag、getAlubme方法设置超时时间超时时间为3000毫秒, 超时后重试次数为0。

@Reference(version = "1.0.0", parameters = {
            "getFlag.retries", "0",
            "getFlag.timeout", "3000",
            "getAlubme.retries", "0",
            "getAlubme.timeout", "3000"})
    private IHistoryBrowseService historyBrowseService;


2.设置在具体实现类上
这里代表给historyBrowseService整个服务设置超时时间,服务中所有方法都生效。

@Reference(version = "1.0.0", retries = 0,timeout = 3000)
    private IHistoryBrowseService historyBrowseService;


3.全局设置。在配置文件设置
这里是springBoot的yml文件格式。dubbo版本是2.0.0。如果你使用的是0.2.0以上的版本,那就不需要spring开头。

spring:
   dubbo:     #dubbo配置
      consumer:
         timeout: 3000
         retries: 0


超时时间设置,生效的优先级
设置在方法上的优先级最高,设置在服务上的优先级次之,全局配置的优先级最次
可以按照缺省定义来理解。

指定方法上设置了优先级不生效
检查是否有两个地方都引用了这个服务,但是只有一个地方设置了指定方法的超时时间。
因为默认读取最小的超时时间。如下所示:

public class VVideoServiceImpl extends BaseServiceImpl implements IVVideoService {
    @Reference(version = "1.0.0", parameters = {
            "getFlag.retries", "0",
            "getFlag.timeout", "3000"})
    private IHistoryBrowseService historyBrowseService;
    }

public class RecordDao extends ServiceImpl<VRecordMapper, VRecord> {
    @Reference(version = "1.0.0")
    private IHistoryBrowseService historyBrowseService;
    }


生产者(provider)设置
生产者的配置基本跟消费者一致
1.生产者注册时给具体方法超时时间,这里时给getFlag设置超时时间和重试次数

@Service(version = "1.0.0",parameters = {
        "getFlag.retries","0",
        "getFlag.timeout","3500"})//Service注解必须为com.alibaba.dubbo.config.annotation.Service

注解,且必须标明服务的版本号

@Component
public class HistoryBrowseServiceImpl extends BaseServiceImpl implements IHistoryBrowseService {
    @Override
    public Map<Long, Long> getFlag(Long uid, List<Long> albumIdList) {  
        Map<Long, Long> map = new HashMap<>();
        return map;
    }
}



2.设置具体实现类超时时间

@Service(version = "1.0.0",retries = 0,timeout = 3000)//Service注解必须为com.alibaba.dubbo.config.annotation.Service注解,且必须标明服务的版本号
@Component
public class HistoryBrowseServiceImpl extends BaseServiceImpl implements IHistoryBrowseService {
    @Override
    public Map<Long, Long> getFlag(Long uid, List<Long> albumIdList) {  
        Map<Long, Long> map = new HashMap<>();
        return map;
    }


3.全局配置,配置文件配置
这里与消费之的区别只是头不同,消费者是:consumer,生产者是:provider

spring:
    dubbo:   #dubbo配置
      provider:
         timeout: 3000
         retries: 0


超时时间设置,生效的优先级
设置在方法上的优先级最高,设置在服务上的优先级次之,全局配置的优先级最次
可以按照缺省定义来理解。

消费者和生产者都配置了超时时间,优先级关系
在消费者和生产者同级配置中,消费者优先级比生成者优先级高
在消费者和生成者不同级配置中,级别高的优先级高
也就是如下关系
消费者指定方法 > 生产者指定方法 > 消费者指定服务 > 生产者指定服务 > 消费者全局配置 > 生产者全局配置
也是可以按照缺省定义来理解
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值