分布式服务-DUBBOX(七):重试、超时

一、dubbo重试与超时

1)默认dubbo重试3次,超时时间为1秒。spring

2)测试过程当中发现,注解com.alibaba.dubbo.config.annotation.Service(retries默认值为0,即不重试)retries=0不生效,不知是哪问题数据库

修改demo-consumer工程中spring-mvc.xml配置(去掉“全局异常处理类”注入)express

<!--spring ioc中扫描-讲注解Controller扫入-->
        <context:component-scan base-package="com.company.consumer.controller">
            <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        </context:component-scan>

        <!--<context:component-scan base-package="com.company"/>-->

在UserApiImpl中断点,输入http://localhost:8086/demo-consumer/user/qryUserById.do?id=1,1秒后出现以下情形。spring-mvc

3)服务提供者配置三种方式mvc

  • 注解式:
    @Service(retries = 1,timeout = 2000)
  • dubbo.properties配置
  • #优先级高于dubbo.provider
    #dubbo.service.retries=2
    #dubbo.service.timeout=3000
    
    #dubbo.provider.retries=1
    #dubbo.provider.timeout=2000
  • xml中<dubbo-provider>配置
  • <!--重试机制-0次,超时时间-3秒-->
    <dubbo:provider retries="0" timeout="3000"/>

优先级:ide

  1. 注解式
  2. dubbo.properties中“dubbo.service”
  3. xml中<dubbo:provider>
  4. dubbo.properties中“dubbo.provider”。

简单理解:测试

  • 个性化配置 > service > proivder。
  • 同级别中xml文件配置 >  properties配置。

 

4)一样的,服务消费者也可进行重试次数以及超时时间配置。不建议配置在服务调用方。spa

5)重试机制可能带来的问题-容易形成数据重复(尤为主键仍是在数据库自增的状况)。code

相关文章
相关标签/搜索