精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

瞧瞧別人家的接口重試,那叫一個優雅!

開發 前端
這篇文章跟大家一起聊聊接口重試的8種常用方案,希望對你會有所幫助。?

2025年某電商平臺深夜故障,因重試策略不當導致銀行退款接口被調用82次,引發重復退款126萬元!

復盤發現:80%的開發者認為重試就是for循環+Thread.sleep(),卻忽略了重試風暴、冪等性缺失、資源雪崩等致命問題。

這篇文章跟大家一起聊聊接口重試的8種常用方案,希望對你會有所幫助。

一、重試機制的原因

1.為什么需要重試?

臨時性故障占比超70%,合理重試可將成功率提升至99%以上。

2.重試的三大陷阱

  • 重試風暴:固定間隔重試引發請求洪峰(如萬次重試壓垮服務)
  • 數據不一致:非冪等操作導致重復生效(如重復扣款)
  • 鏈路阻塞:長時重試耗盡線程資源(如數據庫連接池枯竭)

二、基礎重試方案

1.暴力輪回法(青銅)

問題代碼:

// 危險!切勿直接用于生產!
public void sendSms(String phone) {
    int retry = 0;
    while (retry < 5) {
        try {
            smsClient.send(phone);
            break;
        } catch (Exception e) {
            retry++;
            Thread.sleep(1000); // 固定1秒間隔
        }
    }
}

事故案例:某平臺短信接口重試風暴,觸發第三方熔斷封禁。

優化方向:增加隨機抖動 + 異常過濾。

2.Spring Retry(黃金)

聲明式注解控制重試:

@Retryable(
    value = {TimeoutException.class}, // 僅重試超時異常
    maxAttempts = 3,
    backoff = @Backoff(delay = 1000, multiplier = 2) // 指數退避:1s→2s→4s
)
public boolean queryOrder(String orderId) {
    return httpClient.get("/order/" + orderId);
}

@Recover // 兜底降級
public boolean fallback(TimeoutException e) {
    return false; 
}

優勢:

  • 注解驅動,業務零侵入
  • 支持指數退避策略
  • 無縫集成熔斷器@CircuitBreaker

三、高階重試方案

1.Resilience4j(白金)

應對高并發場景的重試+熔斷組合拳:

// 重試配置:指數退避+隨機抖動
RetryConfig retryConfig = RetryConfig.custom()
    .maxAttempts(3)
    .intervalFunction(IntervalFunction.ofExponentialRandomBackoff(
        1000L, 2.0, 0.3// 初始1s,指數倍率2,抖動率30%
    ))
    .retryOnException(e -> e instanceof TimeoutException)
    .build();

// 熔斷配置:錯誤率超50%觸發熔斷
CircuitBreakerConfig cbConfig = CircuitBreakerConfig.custom()
    .slidingWindow(10, 10, COUNT_BASED) 
    .failureRateThreshold(50)
    .build();

// 組合裝飾
Supplier<Boolean> supplier = () -> paymentService.pay();
Supplier<Boolean> decorated = Decorators.ofSupplier(supplier)
    .withRetry(Retry.of("payment", retryConfig))
    .withCircuitBreaker(CircuitBreaker.of("payment", cbConfig))
    .decorate();

效果:某支付系統接入后超時率下降60%,熔斷觸發率降低90%

2.Guava-Retrying(鉆石)

靈活定制復雜重試邏輯:

Retryer<Boolean> retryer = RetryerBuilder.<Boolean>newBuilder()
    .retryIfResult(Predicates.equalTo(false)) // 返回false重試
    .retryIfExceptionOfType(IOException.class)
    .withWaitStrategy(WaitStrategies.exponentialWait(1000, 30, TimeUnit.SECONDS))
    .withStopStrategy(StopStrategies.stopAfterAttempt(5))
    .build();

retryer.call(() -> uploadService.upload(file)); // 執行

核心能力:

  • 支持結果/異常雙模式觸發
  • 提供7種等待策略(隨機、指數、遞增等)
  • 可監聽每次重試事件

四、分布式重試方案

1.MQ延時隊列(星耀Ⅰ)

適用場景:異步解耦的高并發系統(如物流狀態同步)

架構原理:

RocketMQ實現:

// 生產者發送延時消息
Message msg = new Message();
msg.setBody(orderData);
msg.setDelayTimeLevel(3); // RocketMQ預設10秒延遲
rocketMQTemplate.send(msg);

// 消費者
@RocketMQMessageListener(topic = "RETRY_TOPIC")
publicclass RetryConsumer {
    public void consume(Message msg) {
        try {
            process(msg);
        } catch (Exception e) {
            // 提升延遲級別重發
            msg.setDelayTimeLevel(5); 
            resend(msg);
        }
    }
}

優勢:

  • 重試與業務邏輯解耦
  • 天然支持梯度延時
  • 死信隊列兜底人工處理

2.定時任務補償(星耀Ⅱ)

適用場景:允許延遲的批處理任務(如文件導入)

@Scheduled(cron = "0 0/5 * * * ?") // 每5分鐘執行
public void retryFailedTasks() {
    List<FailedTask> tasks = taskDao.findFailed(MAX_RETRY);
    tasks.forEach(task -> {
        if (retry(task)) {
            task.markSuccess();
        } else {
            task.incrRetryCount();
        }
        taskDao.update(task);
    });
}

關鍵點:

  • 數據庫記錄失敗任務
  • 低峰期批量處理
  • 獨立線程池隔離資源

3.兩階段提交(王者Ⅰ)

金融級一致性保障(如轉賬):

@Transactional
public void transfer(TransferRequest req) {
    // 階段1:持久化操作流水
    TransferRecord record = recordDao.create(req, PENDING);
    
    // 階段2:調用銀行接口
    boolean success = bankClient.transfer(req);
    
    // 更新狀態
    recordDao.updateStatus(record.getId(), success ? SUCCESS : FAILED);
    
    if (!success) {
        mqTemplate.send("TRANSFER_RETRY_QUEUE", req); // 觸發異步重試
    }
}

// 補償任務(掃描掛起流水)
@Scheduled(fixedRate = 30000)
public void compensate() {
    List<TransferRecord> pendings = recordDao.findPending(30);
    pendings.forEach(this::retryTransfer);
}

核心思想:操作前先留痕,任何失敗可追溯

4.分布式鎖重試(王者Ⅱ)

防重復提交終極方案(如秒殺):

public boolean retryWithLock(String key, int maxRetry) {
    String lockKey = "RETRY_LOCK:" + key;
    for (int i = 0; i < maxRetry; i++) {
        if (redis.setIfAbsent(lockKey, "1", 30, SECONDS)) {
            try {
                return callApi(); // 持有鎖時執行
            } finally {
                redis.delete(lockKey);
            }
        }
        Thread.sleep(1000 * (i + 1)); // 等待鎖釋放
    }
    return false;
}

適用場景:

  • 多實例部署環境
  • 高競爭資源訪問
  • 等冪性要求極高業務

五、響應式重試:Spring WebFlux方案

1.響應式重試操作符

Mono<String> remoteCall = Mono.fromCallable(() -> {
    if (Math.random() > 0.5) throw new RuntimeException("模擬失敗");
    return "Success";
});

remoteCall.retryWhen(Retry.backoff(3, Duration.ofSeconds(1))
          .doBeforeRetry(signal -> log.warn("第{}次重試", signal.totalRetries()))
          .subscribe();

策略支持:

  • 指數退避:Retry.backoff(maxAttempts, firstBackoff)
  • 隨機抖動:.jitter(0.5)
  • 條件過濾:.filter(ex -> ex instanceof TimeoutException)

六、重試的避坑指南

1.必須實現的三大防護

防護類型

目的

實現方案

冪等性防護

防止重復生效

唯一ID+狀態機

重試風暴防護

避免洪峰沖擊

指數退避+隨機抖動

資源隔離

保護主鏈路資源

線程池隔離/熔斷器

2.經典踩坑案例

  • 坑1:無限制重試→ 某系統因未設重試上限,線程池爆滿導致集群雪崩
  • 解法maxAttempts=3 + 熔斷降級
  • 坑2:忽略錯誤類型→ 參數錯誤(4xx)被反復重試,放大無效流量
  • 解法:retryOnException(e -> e instanceof TimeoutException)
  • 坑3:上下文丟失→ 異步重試后丟失用戶會話信息
  • 解法:重試前快照關鍵上下文(如userId、requestId)

七、方案選型參考圖

總結

  • 敬畏每一次重試:重試不是暴力補救,而是精密流量控制。
  • 面向失敗設計:假設網絡不可靠、服務會宕機、資源終將枯竭。
  • 分層防御體系

a.代碼層:冪等性 + 超時控制

b.框架層:退避策略 + 熔斷降級

c.架構層:異步解耦 + 持久化補償

  • 沒有銀彈:秒殺場景用分布式鎖,支付系統用兩階段提交,IoT設備用MQTT重試機制。

正如分布式系統大師Leslie Lamport所言:“重試是分布式系統的成人禮”

掌握這8種方案,你將擁有讓系統“起死回生”的魔法!

責任編輯:姜華 來源: 蘇三說技術
相關推薦

2025-03-11 08:20:58

2022-12-12 08:14:47

2025-05-30 08:20:54

2024-11-12 08:20:31

2025-04-08 08:20:33

2024-10-24 08:21:33

2024-12-02 00:59:30

Spring

2025-03-06 08:21:02

判空entity對象

2025-04-22 08:20:51

2025-02-28 08:21:00

2025-08-19 10:01:43

2020-11-03 16:00:33

API接口微服務框架編程語言

2020-11-17 09:34:31

API接口后端

2022-06-10 13:03:44

接口重試while

2017-11-12 21:32:52

戴爾

2015-09-24 09:22:16

nodejs頁面始末

2016-01-08 09:49:19

DockerDocker案例云應用開發

2017-09-22 13:22:59

大數據南京大學宿舍

2023-12-30 20:04:51

MyBatis框架數據

2021-07-14 06:31:08

京東互聯網加薪
點贊
收藏

51CTO技術棧公眾號

午夜精品一区二区三区电影天堂| 日产国产高清一区二区三区| 精品处破学生在线二十三| 欧美午夜小视频| 亚洲日本香蕉视频| 秋霞电影网一区二区| 久久亚洲成人精品| xxxxxx黄色| 欧美三级电影网址| 一区二区三区在线免费观看| 久久人人九九| 99久久精品无免国产免费| 国产精品毛片在线| 久久视频中文字幕| 熟女俱乐部一区二区视频在线| 天天综合91| 欧美视频在线免费看| www.午夜色| 五月天激情婷婷| 韩日欧美一区二区三区| 2019国产精品自在线拍国产不卡| 国产又黄又粗又猛又爽的| 欧美爱爱网站| 制服丝袜国产精品| 粉嫩虎白女毛片人体| eeuss鲁一区二区三区| 国产亚洲精品中文字幕| 国产精品视频一区二区三区经| 国产精华7777777| 一本色道久久精品| 欧美放荡办公室videos4k| 黑人と日本人の交わりビデオ| 国产精品成人自拍| 欧美一区二区国产| 亚洲另类第一页| 激情开心成人网| 黑人巨大精品欧美一区二区免费| 女人床在线观看| 麻豆91在线| 中文字幕av在线一区二区三区| 久久久久久草| 天天操天天干天天| 99久久综合国产精品| 69174成人网| 国产精品爽爽久久| 激情都市一区二区| 国产日韩精品在线观看| 欧美在线视频精品| 日韩av网站免费在线| 欧洲成人性视频| 天堂在线免费观看视频| 中文在线不卡| 天天久久综合| 六月丁香婷婷久久| 欧美在线影院在线视频| 久久不卡免费视频| 日韩电影一区| av观看在线| www.麻豆av| 精品亚洲乱码一区二区 | 91色精品视频在线| 99久热在线精品996热是什么| 亚洲澳门在线| 俺去啦;欧美日韩| av男人的天堂av| 国产剧情一区| 亚洲欧洲偷拍精品| 久久久久久国产免费a片| 亚洲日本三级| 国产一区二区三区在线观看视频 | www.热久久| 成人国产在线观看| 麻豆久久久av免费| 日韩免费啪啪| 亚洲影院理伦片| 鲁一鲁一鲁一鲁一色| 久久久九九九热| av久久网站| 欧美日本在线一区| 欧美性猛交xx| 国产一级成人av| 亚洲美女av网站| av手机在线播放| 91精品高清| 午夜精品理论片| 波多野结衣在线观看视频| 精品一区二区影视| 国产一区在线观| www.亚洲激情| avav免费在线观看| 成人午夜大片免费观看| 蜜桃传媒视频麻豆一区| 97超碰人人在线| 亚洲制服丝袜在线| 嫩草av久久伊人妇女超级a| 国产精品天堂蜜av在线播放| 欧美一级一级性生活免费录像| 久久无码专区国产精品s| 猛男gaygay欧美视频| 久久精品亚洲热| 国产尤物在线视频| 国产毛片精品一区| 欧美一区亚洲二区| 国产在线看片| 日本精品一区二区三区四区的功能| 国内自拍第二页| 亚洲品质自拍| 久久91超碰青草是什么| 亚洲图片欧美日韩| 成人污视频在线观看| 亚洲精品乱码久久久久久蜜桃91 | 福利视频999| 久久久久久无码精品大片| 欧美freesex交免费视频| 欧洲亚洲妇女av| 精品久久久免费视频| 国产天堂亚洲国产碰碰| 白白操在线视频| 成人a在线观看高清电影| 亚洲国产福利在线| tube国产麻豆| 毛片av中文字幕一区二区| 精品国产一二| 国产成人午夜| 欧美视频在线一区| 蜜桃精品一区二区| 国自产拍偷拍福利精品免费一| 国产男女猛烈无遮挡91| 国际av在线| 精品国产91乱高清在线观看| 女人扒开双腿让男人捅 | 欧美电影院免费观看| 伊人av综合网| 无码人妻aⅴ一区二区三区有奶水 无码免费一区二区三区 | 久久精品欧美一区二区三区不卡| 青草网在线观看| 日本亚洲视频| 久久成人在线视频| 91一区二区视频| 国产精品久久久久9999吃药| 免费看a级黄色片| 亚洲自拍电影| 欧美一级在线播放| 无码精品在线观看| 岛国av一区二区| 亚洲av片不卡无码久久| 亚洲精品美女91| 狠狠久久综合婷婷不卡| 草草在线观看| 日韩av在线播放资源| 在线观看国产亚洲| 久久亚洲综合色一区二区三区| 日韩欧美国产免费| 亚洲三级精品| 国产精品1区2区在线观看 | 久久久综合精品| 欧美xxxxx在线视频| 亚洲小说图片| 国产欧美精品在线| 二区三区在线观看| 日韩精品一区二区三区四区| 精品在线免费观看视频| 99精品久久99久久久久| 韩国日本在线视频| 日韩精品中文字幕第1页| 国产日韩在线免费| 香蕉成人app免费看片| 精品国产免费一区二区三区香蕉| 日产精品久久久久久久| 久久欧美中文字幕| 狠狠干狠狠操视频| 亚洲精品资源| 神马影院我不卡| 亚洲a成人v| 欧美国产日产韩国视频| 日本福利午夜视频在线| 欧美日韩精品二区第二页| 久久久久久久久久网站| 99精品热视频| 爱豆国产剧免费观看大全剧苏畅| 国产精品黄色| 天堂精品一区二区三区| 亚洲精品一区国产| 日本高清视频一区| 黄色免费在线看| 日韩电视剧免费观看网站| 中文字幕+乱码+中文| 玉米视频成人免费看| 亚洲午夜福利在线观看| 国精品**一区二区三区在线蜜桃| 免费无码毛片一区二三区| 日韩理论电影大全| 国产九色91| 欧美高清你懂的| 91av在线国产| 八戒八戒神马在线电影| 亚洲日韩中文字幕| 亚洲AV无码精品色毛片浪潮| 色八戒一区二区三区| 九九热精品在线观看| 国产日韩成人精品| 熟妇高潮一区二区| 精品一区二区三区免费毛片爱| 青青草视频在线免费播放| 欧美gayvideo| 免费观看成人高| 日日夜夜精品视频| 国产区精品在线观看| 天堂在线中文网官网| 欧美乱大交xxxxx另类电影| 成人免费在线电影| 日韩精品免费观看| www.蜜桃av.com| 精品视频一区三区九区| www.av麻豆| 亚洲综合色区另类av| 婷婷丁香综合网| 国产三级三级三级精品8ⅰ区| 亚洲视频天天射| 国产一区二区三区黄视频| 国产三级三级三级看三级| 尤物精品在线| 日产精品久久久久久久蜜臀| 久久久久久影院| 亚州欧美一区三区三区在线 | 国产亚洲人成网站在线观看 | 深夜福利国产精品| 黄色片在线看| 亚洲欧美日韩在线高清直播| 日本高清视频www| 日韩精品一区二区三区蜜臀| 一级黄色短视频| 精品视频资源站| 在线观看不卡的av| 欧美在线高清视频| 99久久久无码国产精品免费蜜柚| 午夜精品福利一区二区蜜股av | 亚洲黄色免费| 欧美久久在线观看| 极品少妇一区二区三区| 日韩黄色片在线| 亚洲国产激情| 欧美亚洲日本一区二区三区| 欧美三级第一页| 日韩成人三级视频| 亚洲黄页一区| 国产中文字幕在线免费观看| 国产日韩专区| 久久久免费视频网站| 另类图片国产| 91香蕉视频污版| 毛片基地黄久久久久久天堂| 蜜臀一区二区三区精品免费视频| 久久福利资源站| 黑人性生活视频| 成人国产亚洲欧美成人综合网 | 日韩高清三区| 人偷久久久久久久偷女厕| 国语产色综合| 一区二区不卡在线| 一区二区三区中文| 久久www视频| 亚洲视频1区| 福利在线一区二区三区| 九九**精品视频免费播放| 精品国产鲁一鲁一区二区三区| 国产一区二区影院| 高清中文字幕mv的电影| wwwwxxxxx欧美| 91视频免费在观看| 亚洲精品免费一二三区| 日本少妇性生活| 91成人在线精品| 国产精品久久久久久久免费| 日韩美女在线视频| 日韩av成人| 日韩中文在线不卡| 青春草视频在线观看| 欧美一区二三区| 一区二区三区| 精品福利影视| 97国产精品| 狠狠干 狠狠操| 蜜桃一区二区三区在线| 日本久久久久久久久久| 国产亚洲美州欧州综合国| 五月天av网站| 日韩欧美一区二区三区| 国产精品久久久久久久成人午夜| 亚洲国产日韩精品在线| 98在线视频| 欧美激情国产精品| 亚洲成av在线| 国产传媒一区| 三区四区不卡| 麻豆tv在线播放| 韩国午夜理伦三级不卡影院| 久久久久麻豆v国产精华液好用吗 在线观看国产免费视频 | 欧美在线一区二区| 东京干手机福利视频| 最新国产精品亚洲| 免费成人在线电影| 亚洲自拍欧美色图| 欧美日韩高清| a级黄色一级片| 国产伦精品一区二区三区免费迷 | 色综合天天视频在线观看| 91亚洲国产成人精品一区| 日韩电影网在线| 色女人在线视频| 国产精品视频1区| 日韩成人一级| av日韩在线看| 国产真实乱偷精品视频免| 国产成人一区二区在线观看| 天天综合色天天| 国产丰满果冻videossex| 在线观看日韩欧美| 自拍偷拍欧美视频| 国产中文一区二区| 午夜激情一区| 久久久久久久久久久久久久久国产 | 亚洲一区二区三区综合| 亚洲综合色丁香婷婷六月图片| 91欧美日韩麻豆精品| 中文字幕在线国产精品| 欧美三区四区| 欧美午夜精品久久久久免费视| 国产日韩1区| 野花社区视频在线观看| 午夜a成v人精品| 成人小说亚洲一区二区三区| 欧美国产高跟鞋裸体秀xxxhd| 欧美电影院免费观看| 日韩欧美一级在线| 国产一区二区h| 99久久99久久精品国产| 欧美丰满少妇xxxxx高潮对白| 在线观看麻豆| 成人网在线免费观看| 天天天综合网| 日本亚洲一区二区三区| 亚洲乱码一区二区三区在线观看| 国产又大又粗又硬| 久久成人av网站| 91午夜精品| 欧美三级一级片| 久久日韩粉嫩一区二区三区| 日本一本在线观看| 在线日韩第一页| 天天综合91| 黄色一级片国产| 成人的网站免费观看| 91浏览器在线观看| 亚洲性视频网站| 欧美v亚洲v综合v国产v仙踪林| 亚洲视频导航| 国产老妇另类xxxxx| 欧美精品一区二区成人| 亚洲国内精品在线| 成人小电影网站| 亚洲免费久久| 国产剧情一区在线| 国产在线欧美在线| 精品中文视频在线| 激情久久一区二区| 青青草视频国产| 91影院在线观看| 欧美一级黄视频| 久久这里有精品视频| 国产精品xxx在线观看| 熟妇人妻va精品中文字幕| 国产精品污www在线观看| 国产农村妇女毛片精品久久| 久久乐国产精品| 欧美精品一区二区久久| 亚洲高清在线不卡| 狠狠色狠狠色综合日日小说| av在线第一页| 99re在线国产| 日韩综合在线视频| 一区视频免费观看| 精品亚洲一区二区三区在线观看 | 91亚洲精华国产精华| 99国产成+人+综合+亚洲欧美| 亚洲色成人网站www永久四虎| 欧美一级理论性理论a| 亚洲一二三四| 一区二区三区一级片| 97精品超碰一区二区三区| 中文字幕在线网址| 国产+人+亚洲| 欧美大黑bbbbbbbbb在线| 黄色在线免费播放| 欧美日本高清视频在线观看| 国模私拍一区二区国模曼安| 一区不卡字幕| 久久精品综合网| 内射后入在线观看一区| 成人黄色免费网站在线观看|