分佈式服務-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

相關文章
相關標籤/搜索