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

從 OpenFeign 到 RestClient:Spring Cloud 新時代的輕量化 HTTP 調用方案

開發 前端
OpenFeign 是 Spring Cloud 生態中最常用的聲明式 HTTP 客戶端,它通過?@FeignClient?注解讓開發者能像調用本地方法一樣調用遠程服務。

一、為什么要替換 OpenFeign?

1. OpenFeign 的困境

OpenFeign 是 Spring Cloud 生態中最常用的聲明式 HTTP 客戶端,它通過 @FeignClient 注解讓開發者能像調用本地方法一樣調用遠程服務。然而,隨著 Netflix OSS 停止維護,Feign 逐漸陷入以下困境:

? 配置復雜度:當需要為不同服務配置獨立的超時參數或編解碼規則時,不得不在啟動類堆積大量@FeignClient注解。

? 性能問題:動態代理機制在簡化開發的同時,也帶來了額外的反射開銷。通過JProfiler抽樣分析發現,在高并發場景下約有8%的CPU時間消耗在Feign的代理邏輯上。

? 異常處理盲區:默認配置下Feign會將4xx錯誤直接封裝成FeignException拋出,需要開發者手動實現ErrorDecoder才能獲取原始響應體。這種設計導致排查問題時總要反復查看日志鏈路,效率實在難以恭維。

因此,從 Spring Framework 6.1 開始,官方推出了全新的 RestClient,意在取代 RestTemplate、部分 WebClient,以及未來的 Feign。

二、RestClient 是什么?

RestClient 是 Spring 官方推出的新一代 HTTP 客戶端,它提供:

? 同步調用(類似 RestTemplate)

? 響應式調用(基于 WebClient)

? 集成 Spring Cloud LoadBalancer,實現自動服務發現

? 與 Declarative HTTP Interface 結合,實現 Feign 風格的聲明式調用

基本使用示例

@RestController
publicclassUserController {

    privatefinalRestClientrestClient= RestClient.builder()
            .baseUrl("http://user-service")
            .build();

    @GetMapping("/users/{id}")
    public User getUser(@PathVariable Long id) {
        return restClient.get()
                .uri("/users/{id}", id)
                .retrieve()
                .body(User.class);
    }
}

三、Declarative HTTP Interface:聲明式調用新時代

Spring 官方提供了新的聲明式調用方式,完全替代 Feign 的寫法:

@HttpExchange("/users")
public interface UserClient {

    @GetExchange("/{id}")
    User getUser(@PathVariable("id") Long id);

    @PostExchange
    User createUser(@RequestBody User user);
}

創建代理:

@Configuration
publicclassClientConfig {

    @Bean
    public UserClient userClient(RestClient.Builder builder) {
        RestClientrestClient= builder.baseUrl("http://user-service").build();
        HttpServiceProxyFactoryfactory=
                HttpServiceProxyFactory.builderFor(RestClientAdapter.create(restClient)).build();
        return factory.createClient(UserClient.class);
    }
}

這樣調用:

@RestController
publicclassTestController {

    privatefinal UserClient userClient;

    publicTestController(UserClient userClient) {
        this.userClient = userClient;
    }

    @GetMapping("/demo")
    public User demo() {
        return userClient.getUser(1L);
    }
}

四、結合 CircuitBreaker 實現熔斷

Spring Boot 3.x 推薦使用 Resilience4j 實現熔斷降級。可以直接將其與 Declarative RestClient 結合。

1. 添加依賴

<dependency>
    <groupId>io.github.resilience4j</groupId>
    <artifactId>resilience4j-spring-boot3</artifactId>
</dependency>

2. 定義熔斷包裝器

@Configuration
publicclassResilientClientConfig {

    @Bean
    public UserClient userClient(RestClient.Builder builder, CircuitBreakerRegistry registry) {
        CircuitBreakercb= registry.circuitBreaker("userServiceBreaker");
        RestClientrestClient= builder.baseUrl("http://user-service").build();

        HttpServiceProxyFactoryfactory=
                HttpServiceProxyFactory.builderFor(RestClientAdapter.create(restClient))
                        .blockTimeout(Duration.ofSeconds(2))
                        .build();

        UserClientbaseClient= factory.createClient(UserClient.class);
        return id -> cb.executeSupplier(() -> baseClient.getUser(id));
    }
}

3. 配置熔斷參數

resilience4j:
  circuitbreaker:
    instances:
      userServiceBreaker:
        slidingWindowSize: 20
        failureRateThreshold: 50
        waitDurationInOpenState: 10s

五、支持服務發現與負載均衡

引入 Spring Cloud LoadBalancer 后,RestClient 能像 Feign 一樣使用邏輯服務名:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>
@Bean
public RestClient restClient(RestClient.Builder builder) {
    return builder.baseUrl("http://user-service").build();
}

服務名將自動通過 Nacos / Eureka 解析,無需硬編碼 IP。

六、總結

維度

OpenFeign

RestClient + Declarative HTTP Interface

是否官方維護

? Netflix 停止維護

? Spring 官方維護

性能

一般

優秀

聲明式調用

?

?

自動發現

?

?

熔斷支持

?(Hystrix/Resilience4j)

?(Resilience4j)

響應式

?

?

適配 Spring Boot 3+

?? 部分兼容

? 完全兼容

一句話總結:

在 Spring Boot 3.2+ 時代,RestClient + Declarative HTTP Interface + Resilience4j 是 Feign 的完美替代方案。

七、實戰項目結構圖

restclient-demo/
├── pom.xml
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/example/restclientdemo/
│   │   │       ├── controller/
│   │   │       │   └── TestController.java
│   │   │       ├── client/
│   │   │       │   ├── UserClient.java
│   │   │       │   └── ResilientClientConfig.java
│   │   │       ├── model/
│   │   │       │   └── User.java
│   │   │       └── RestclientDemoApplication.java
│   │   └── resources/
│   │       ├── application.yml
│   │       └── logback-spring.xml
│   └── test/
│       └── java/
│           └── com/example/restclientdemo/
│               └── UserClientTests.java

八、完整依賴列表(pom.xml 片段)

<dependencies>
    <!-- Spring Boot Starter -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Spring Boot RestClient (Spring 6.1+) -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-webclient</artifactId>
    </dependency>

    <!-- Declarative HTTP Interface 支持 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

    <!-- 服務發現與負載均衡 -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-loadbalancer</artifactId>
    </dependency>

    <!-- 熔斷降級 Resilience4j -->
    <dependency>
        <groupId>io.github.resilience4j</groupId>
        <artifactId>resilience4j-spring-boot3</artifactId>
    </dependency>

    <!-- 注冊中心(可選)Eureka 或 Nacos -->
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        <optional>true</optional>
    </dependency>

    <!-- Lombok -->
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>

    <!-- 測試 -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>


責任編輯:武曉燕 來源: JAVA日知錄
相關推薦

2024-03-08 10:05:09

SpringHTTP接口

2025-06-16 08:51:23

2021-11-16 11:45:00

SpringSpring ClouJava

2023-07-13 09:01:39

Bean接口容器

2025-01-16 11:45:26

2024-09-30 15:19:41

2022-05-24 14:07:53

OpenFeignSpring開源

2023-10-13 08:52:19

遠程Bean類型

2025-04-30 02:00:00

Dify開源AI

2009-06-22 11:48:08

Spring.NET

2025-05-26 11:06:01

金蝶智能體

2020-12-04 09:30:18

HTTPWeb前端

2023-03-15 16:31:56

系統聲音收錄鴻蒙

2014-11-28 13:02:23

2021-06-26 06:58:12

MPLS互聯網廣域網

2011-09-27 20:07:10

芯片網絡

2023-03-17 16:31:19

LVGL鴻蒙

2023-03-31 09:35:19

LVGL使用鴻蒙

2022-06-21 10:10:14

HTTP協議TCP

2011-01-10 10:27:51

linux應用
點贊
收藏

51CTO技術棧公眾號

不卡的电视剧免费网站有什么| 日韩精品欧美大片| 亚洲美女区一区| 国产98在线|日韩| 三级网站在线播放| 91成人精品视频| 亚洲精品不卡在线| 亚洲欧洲日本精品| 国产在线xxx| 国产亚洲成年网址在线观看| 91沈先生作品| 六月丁香激情综合| 99精品美女| 亚洲国产欧美自拍| 久在线观看视频| 无遮挡动作视频在线观看免费入口| 国产精品一区二区视频| 国产91免费看片| 久久艹精品视频| 波多野结衣一区| 亚洲激情免费观看| 国内外成人免费在线视频| 国产在线天堂www网在线观看| 国产精品国产三级国产普通话99 | 99久久综合狠狠综合久久| 国产精品一区二区三区久久| 免费在线不卡视频| 午夜电影亚洲| 久久精品国产亚洲精品2020| 精品无码国产污污污免费网站 | 久久中文在线| 欧美激情亚洲激情| 久久久久久久久久97| 深爱激情久久| 亚洲精品久久久久久久久| 国产精品嫩草影视| 日韩护士脚交太爽了| 色综合天天综合狠狠| 很污的网站在线观看| jizzjizz亚洲| 中文字幕视频一区| 日韩伦理一区二区三区av在线| 日韩中文字幕综合| 高清免费成人av| 亚洲xxx大片| 国产精品热久久| 激情综合网天天干| 成人国产亚洲精品a区天堂华泰| 波多野结衣视频网址| 国产精品日本| 欧美一区第一页| 制服.丝袜.亚洲.中文.综合懂色| 在线日本高清免费不卡| 欧美激情第三页| 久久综合久久鬼| 精品电影一区| 97色在线观看免费视频| 日韩特黄一级片| 亚洲国产专区| 136fldh精品导航福利| 精品91久久久| 免费日韩av片| 国产成人福利视频| 久久久精品毛片| 免费观看日韩av| 成人久久久久久| www.成人在线观看| 高清视频一区二区| 麻豆精品视频| yiren22综合网成人| 国产精品天美传媒沈樵| 一区二区三区免费看| 黄色视屏免费在线观看| 一区二区三区欧美| www.av片| 国产成人精品亚洲日本在线观看| 在线观看xxx| 美女在线一区二区| 成人精品视频99在线观看免费| 国产欧美一级片| 成人av午夜电影| 欧美日韩国产一二| 幼a在线观看| 一区二区三区波多野结衣在线观看| 日韩极品视频在线观看 | 少妇精品久久久一区二区三区 | 国产亚洲一区在线播放| 欧美少妇另类| 亚洲视频在线观看三级| 国产毛片久久久久久国产毛片| 三妻四妾的电影电视剧在线观看| 在线精品国精品国产尤物884a| 超碰成人在线播放| 成人爽a毛片| 伊人一区二区三区久久精品| 男女性高潮免费网站| 国产精品永久| 国产日韩欧美日韩| 天堂av一区二区三区| 欧美国产成人在线| 久久久久久久久久网| jizz免费一区二区三区| 精品黑人一区二区三区久久| 免费人成又黄又爽又色| 欧美极品一区二区三区| 国产激情999| 免费观看的毛片| 国产精品久久毛片av大全日韩| 国产乱淫av片杨贵妃| 国产91在线精品| 日韩高清免费观看| 欧美日韩免费一区二区| 日韩中文字幕区一区有砖一区| 不卡一区二区三区视频| 91在线直播| 欧美性xxxx| 性活交片大全免费看| 欧美wwwww| 国产精品99久久久久久久久| 黄色福利在线观看| 亚洲色图清纯唯美| 91国产精品视频在线观看| 欧美交a欧美精品喷水| 欧美精品情趣视频| 91成人国产综合久久精品| 99国产欧美久久久精品| 黄色特一级视频| 综合久久伊人| 中文字幕日韩视频| 高潮毛片又色又爽免费 | 真实乱视频国产免费观看 | 中文字幕视频一区| 一级特黄性色生活片| 在线成人动漫av| 国模精品系列视频| 亚洲黄色片视频| 亚洲素人一区二区| 亚洲欧美自偷自拍另类| 国产免费av一区二区三区| 97国产精品视频| 蜜桃久久一区二区三区| 夜夜嗨av一区二区三区中文字幕| 久久精品国产99久久99久久久| 日韩免费久久| 国产精品嫩草视频| avav免费在线观看| 在线观看av不卡| 手机毛片在线观看| 奇米精品一区二区三区四区| 色阁综合av| 少妇精品视频一区二区免费看| 亚洲欧美制服第一页| 中文人妻av久久人妻18| 久久久久久久久久久黄色| 成人毛片视频网站| 少妇精品久久久一区二区三区 | www.激情网| 日本一区二区三区视频在线看| 久久精品国产亚洲精品2020| 国产suv一区二区| 一区二区三区四区乱视频| 国产裸体视频网站| 欧美日韩中文| 久久国产一区二区| 日韩电影av| 中文字幕免费精品一区高清| 国产精品久久久久久免费免熟 | 精品免费囯产一区二区三区 | 精品国内片67194| 日韩欧美大片在线观看| wwww国产精品欧美| 污污视频网站免费观看| 99久久综合| 91免费看网站| 美女露胸视频在线观看| 亚洲天堂av图片| 国产精品嫩草影院桃色| 午夜精品视频一区| 日韩精品电影一区二区| 美女国产一区二区三区| 天堂8在线天堂资源bt| 香蕉人人精品| 国产欧美日韩精品在线观看| 羞羞的视频在线观看| 亚洲精品成人久久久| 日本欧美www| 一区二区三区中文字幕| 亚洲自拍偷拍一区二区| 精品一区二区三区免费视频| 国产老熟妇精品观看| 欧美成人激情| 精品国产一区二区三区麻豆免费观看完整版| 欧美极品免费| 欧美国产日产韩国视频| 玖玖综合伊人| 日韩精品自拍偷拍| 亚洲成熟少妇视频在线观看| 一区二区三区中文字幕在线观看| 中文字幕一区二区三区人妻电影| 精品亚洲aⅴ乱码一区二区三区| 欧美 国产 综合| 中文在线播放一区二区| 欧美日本亚洲| 91亚洲无吗| 国产欧美在线看| 狠狠躁少妇一区二区三区| www.日韩不卡电影av| 水莓100在线视频| 欧美日韩国产bt| 久久久国产精品成人免费| 亚洲免费观看高清完整版在线| 爱爱免费小视频| 懂色av中文字幕一区二区三区| 一区二区三区 欧美| 亚洲理论在线| 久久精品在线免费视频| 三上亚洲一区二区| 蜜桃av噜噜一区二区三区| 一区二区中文字幕在线观看| 国产精品免费福利| 中文字幕21页在线看| 欧美国产亚洲精品久久久8v| 在线观看国产原创自拍视频| 亚洲人午夜精品免费| 亚州av在线播放| 精品国产免费久久 | 一二三四视频在线中文| 欧美激情日韩图片| av中文字幕在线播放| 日韩亚洲精品视频| 成人在线免费公开观看视频| 亚洲欧洲免费视频| 天天在线女人的天堂视频| 欧美sm美女调教| 午夜精品小视频| 日韩一区和二区| 国产深喉视频一区二区| 欧美人狂配大交3d怪物一区| 免费在线不卡av| 在线观看视频一区二区欧美日韩| 久草视频一区二区| 欧美日韩中文字幕在线| 五月婷婷亚洲综合| 日韩欧美中文第一页| 国产一级精品视频| 欧美日韩视频在线| 五月激情六月丁香| 色综合久久综合网欧美综合网| 草久久免费视频| 欧美日韩亚洲天堂| 中文字幕黄色片| 欧美最猛黑人xxxxx猛交| 一级久久久久久| 欧美日韩一区在线观看| 中文字幕日本人妻久久久免费 | 性欧美亚洲xxxx乳在线观看| 999福利在线视频| 国色天香2019中文字幕在线观看| 高清电影在线免费观看| 97精品国产97久久久久久免费| а√天堂8资源中文在线| 欧美一区二区大胆人体摄影专业网站| 中文字幕资源网在线观看免费| 国产v综合v亚洲欧美久久| 国产精品蜜月aⅴ在线| 成人网在线免费观看| 深夜福利一区| 精品一区二区三区自拍图片区 | 国产精品一区三区| 波多野结衣办公室双飞| 91影院在线观看| xxxxx99| 亚洲欧洲制服丝袜| 亚洲精品在线观看av| 色综合久久天天| 亚洲一级在线播放| 亚洲成人黄色网址| 黄色大片在线看| 久久精品人人做人人爽| 91在线三级| 国产精品h片在线播放| 亚洲香蕉久久| 激情视频在线观看一区二区三区| 欧美女优在线视频| 欧美与动交zoz0z| 欧美中文日韩| 韩国一区二区在线播放| 26uuu亚洲综合色欧美| 国产精品18在线| 亚洲成年人影院| 亚洲性生活大片| 亚洲黄色片网站| 黄网址在线观看| 日韩av123| 日韩在线精品强乱中文字幕| 欧美日韩中文国产一区发布| 欧美伊人影院| 黄色国产小视频| 粉嫩久久99精品久久久久久夜| 黄色片在线观看免费| 一区二区免费视频| 丰满熟女人妻一区二区三| 亚洲二区中文字幕| 男人天堂久久久| 欧美综合国产精品久久丁香| 成人黄色理论片| 日韩欧美在线观看强乱免费| 好看的亚洲午夜视频在线| 日韩av片专区| 国产亚洲精品超碰| 西西44rtwww国产精品| 欧美一区二区黄| 日本在线观看免费| 国产成人精品久久二区二区| 亚洲成人偷拍| 9999在线观看| 日本视频一区二区三区| 三级黄色片网站| 亚洲午夜久久久久久久久电影院 | 国产又黄又大久久| 无码少妇精品一区二区免费动态| 五月婷婷综合激情| 亚洲av少妇一区二区在线观看| 色青青草原桃花久久综合| 日韩精品99| 麻豆av一区二区| 一区二区毛片| 丰满岳乱妇一区二区| 亚洲伦理在线精品| 国产原创中文av| 最近2019年日本中文免费字幕| 超碰国产一区| 欧美日韩亚洲在线| 99精品99| 北岛玲一区二区| 福利精品视频在线| 色一情一乱一乱一区91av| 久久免费视频网| 精品深夜福利视频| 日韩伦理在线免费观看| 成人小视频免费观看| 久久亚洲精品大全| 精品国产91九色蝌蚪| sqte在线播放| 国产伦精品一区二区三区照片| 亚洲视频久久| 亚洲国产精品狼友在线观看| 亚洲高清免费一级二级三级| 免费观看的毛片| 欧洲精品在线视频| 精品国产一区二区三区噜噜噜| 能看的毛片网站| 中文字幕乱码亚洲精品一区| 亚洲一区 中文字幕| 久久视频免费在线播放| 激情不卡一区二区三区视频在线| 干日本少妇视频| 国产**成人网毛片九色| 91在线看视频| 亚洲欧美日韩精品久久| av激情成人网| 最新av网址在线观看| 成人黄色在线网站| 亚洲天堂一区在线| 一区二区三区动漫| 九九99久久精品在免费线bt| 91成人综合网| 成人国产免费视频| 一级片免费在线播放| 久久精品国产99国产精品澳门| 国产欧美日韩电影| heyzo亚洲| 国产日本一区二区| 国产精品国产精品国产专区| 欧美精品久久久久久久免费观看| 日韩在线你懂的| 在线黄色免费观看| 一区二区三区四区不卡视频 | 日韩精品亚洲专区在线观看| 久久久久久久久久伊人| 99re热视频精品| 在线免费观看日韩视频| 久久久久久噜噜噜久久久精品| 亚洲精品动态| xxxx在线免费观看| 亚洲福利一区二区| www.中文字幕久久久| 超碰97在线资源| 日韩经典一区二区| 久久综合色综合| 中文字幕欧美精品在线 | 韩国一区二区在线观看| 国产精品99re| 中文字幕在线看视频国产欧美| 成人台湾亚洲精品一区二区| 欧美在线观看视频网站| 亚洲专区一二三| 尤物视频在线免费观看| 精品一区二区三区视频日产| 国产麻豆精品一区二区|