一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Spring Cloud Config Client超時及重試示例詳解

Spring Cloud Config Client超時及重試示例詳解

2021-04-29 14:54張旭乾 Java教程

這篇文章主要給大家介紹了關于Spring Cloud Config Client超時及重試的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

簡介

有時客戶端需要在 config server 無響應時進行重試,以給 config server 時間進行恢復。利用 spring 提供的重試組件,我們可以方便的配置重試機制,包括重試間隔,重試次數等。下面話不多說了,來一起看看詳細的介紹吧。

項目源碼

點擊下載

為 web 項目添加依賴

開啟客戶端重試功能需要兩個新依賴,spring-retry 和 spring-boot-starter-aop,把如下代碼添加到 web 項目的 pom.xml 文件中:

?
1
2
3
4
5
6
7
8
9
<dependency>
 <groupid>org.springframework.retry</groupid>
 <artifactid>spring-retry</artifactid>
 <version>1.2.2.release</version>
</dependency>
<dependency>
 <groupid>org.springframework.boot</groupid>
 <artifactid>spring-boot-starter-aop</artifactid>
</dependency>

然后在 bootstrap.yml 文件中添加如下配置:

?
1
2
3
4
5
6
7
8
9
10
11
12
spring:
 application:
 name: web-client
 cloud:
 config:
  uri: http://localhost:8888
  fail-fast: true
  retry:
  initial-interval: 1000
  max-attempts: 6
  max-interval: 2000
  multiplier: 1.1

首先把 spring.cloud.config.fail-fast 為true,即在獲取不到遠程配置時,立即失敗,但是用下邊的配置進行重試。

spring.cloud.config.retry 所有子項均為默認值:

  • initial-interval: 最初重試間隔為 1000 毫秒
  • max-attempts: 最多重試 6 次
  • max-interval: 最長重試間隔為 2000 毫秒
  • multiplier:  每次重試失敗后,重試間隔所增加的倍數

測試

如果使用了本教程的項目,我們需要首先啟動 configserver 項目,然后再啟動 registry 項目開啟 eureka,因為 web 客戶端使用了 eureka 服務,之后關閉 configserver,然后啟動 web 項目,會看到如下 log:

2018-05-15 16:04:58.421  info 2663 --- [           main] c.c.c.configservicepropertysourcelocator : fetching config from server at: http://localhost:8888

重試 6 次失敗后,客戶端啟動失敗,如果中途開啟 configserver,則 web 客戶端啟動成功。
細粒度控制重試

我們可以在代碼中實現更精細的控制重試機制,在 web 項目中創建一個新的 java 類 cn.zxuqian.configurations.retryconfiguration,添加如下代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
package cn.zxuqian.configurations;
import org.slf4j.logger;
import org.slf4j.loggerfactory;
import org.springframework.boot.autoconfigure.condition.conditionalonmissingbean;
import org.springframework.context.annotation.bean;
import org.springframework.retry.interceptor.retryinterceptorbuilder;
import org.springframework.retry.interceptor.retryoperationsinterceptor;
public class retryconfiguration {
 private static logger log = loggerfactory.getlogger(retryconfiguration.class);
 @bean
 @conditionalonmissingbean(name = "configserverretryinterceptor")
 public retryoperationsinterceptor configserverretryinterceptor() {
  log.info(string.format(
    "configserverretryinterceptor: changing backoffoptions " +
      "to initial: %s, multiplier: %s, maxinterval: %s",
    1000, 1.2, 5000));
  return retryinterceptorbuilder
    .stateless()
    .backoffoptions(1000, 1.2, 5000)
    .maxattempts(10)
    .build();
 }
}

這里我們定義了configserverretryinterceptor方法用于 spring retry 使用我們自定義的重試攔截器。方法使用 retryinterceptorbuilder 按要求創建了一個 stateless 的 retryoperationsinterceptor,并設置了初始重試間隔為 1000 毫秒,增加倍數為 1.2 倍,最大重試間隔為 5000 毫秒,最大重試次數為 10 次,builder 還提供了諸如配置重試機制之類的接口,有興趣的讀者可自行研究。

@conditionalonmissingbean 標明當 beanfactory 中沒有名為 configserverretryinterceptor 的 bean 時才匹配此 bean。

最后在 src/main/resources/meta-inf/ (沒有可創建此文件夾) 新建一個 spring.factories 文件,指定我們剛創建類為啟動時的配置,以在獲取遠程配置之前生效:

?
1
org.springframework.cloud.bootstrap.bootstrapconfiguration=cn.zxuqian.configurations.retryconfiguration

測試

最后在關閉 configserver 的條件下啟動 web 項目,然后就會看到重試十次之后,項目啟動失敗。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:http://zxuqian.cn/spring-cloud-config-retry/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩免费高清完整版 | 天天舔天天干天天操 | 我将她侵犯1~6樱花动漫在线看 | 亚洲精品一区二区三区中文字幕 | 小寡妇水真多好紧 | 第一国内永久免费福利视频 | 欧美日韩国产在线人成 | 国产一区二区三区水野朝阳 | 日本一级不卡一二三区免费 | 全肉一女n男np高h双龙养成 | 美女扒下内裤让男人桶的图片 | 操女b | 成人免费观看网欧美片 | 亚洲福利电影一区二区? | 国产成人v爽在线免播放观看 | 日本小视频免费 | 欧美成人aa久久狼窝动画 | 天天做天天爱天天爽综合网 | 麻生希在线观看 | 成人福利在线观看 | 日本激情网站 | 2021年国内自拍 | 天仙tv微福视频 | 日韩国产欧美一区二区三区 | 521色香蕉网站在线观看 | 性xxxx直播放免费 | 日本免费观看的视频在线 | 波多野结衣中文字幕乱七八糟 | 日本精品人妖shemale人妖 | 午夜福利视频极品国产83 | 精品视频在线免费观看 | 免费91麻豆精品国产自产在线观看 | 免费xxxx日本大片在线观看 | 无人区在线观看免费观看 | 黄+色+性+人免费 | 亚洲一级特黄 | 国产高清视频网站 | 日本一区免费观看 | 夫妇交换小说 | 午夜宅男在线观看 | 九九精品免视看国产成人 |