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

Spring Cloud 遠程調用 OpenFeign 這些知識點,能顛覆你的認知!

開發 前端
實現的原理也比較簡單就是:向容器中注冊了一個OptionsFactoryBean類型的bean且該Bean的作用域范圍是refresh。當我們調用/refresh endpoint后就會刷新該Bean的配置信息。

環境:SpringBoot2.7.12 + Spring Cloud2021.0.7

1. 概述

Spring Cloud Openfeign是一種聲明式、模板化的HTTP客戶端,主要用于在Spring Cloud微服務架構中進行服務調用。

相比于傳統的RestTemplate,Openfeign更加簡潔,開發者只需通過編寫一個接口并添加注解進行配置,即可實現對服務提供方接口的綁定,而無需手動構造請求和解析返回數據。

Openfeign的應用,讓Spring Cloud微服務調用變得更加便捷。在服務消費者中,只需通過接口方法即可進行遠程服務調用,就像調用本地方法一樣簡單。此外,Feign還集成了LoadBalancer,利用LoadBalancer維護服務提供方列表,實現輪詢調用服務提供者。

使用Spring Cloud Openfeign,開發者可以更加專注于業務邏輯而不是底層的HTTP請求,提高了開發效率和代碼可讀性。同時,Openfeign還支持自定義配置和擴展,可以滿足不同場景下的需求。總之,Spring Cloud Openfeign是Spring Cloud微服務架構中不可或缺的一部分,可以幫助開發者更加高效地進行服務調用。

2. 準備環境

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-circuitbreaker-resilience4j</artifactId>
</dependency>

開啟openfeign功能

@SpringBootApplication
@EnableFeignClients
public class SpringCloudComprehensiveApplication {
}

feign客戶端

@FeignClient(
    url = "http://localhost:8088/demos", 
    name = "demoService"
)
public interface DemoFeign {


  @GetMapping("/info/{id}")
  public Object info(@PathVariable("id") Integer id) ;
  
}

以上DemoFeign就能被正確的使用了。接下來看看下面的那些知識點你是知道的

3. 知識盲區

盲區1:超時時間

默認情況下feign調用超時時間如下:

/**
 * 默認超時時間
 * <ul>
 * <li>Connect Timeout: 10 seconds</li>
 * <li>Read Timeout: 60 seconds</li>
 * <li>Follow all 3xx redirects</li>
 * </ul>
 */
public Options() {
  this(10, TimeUnit.SECONDS, 60, TimeUnit.SECONDS, true);
}

定義

public class FeignClientFactoryBean {
  // 讀超時時間
  private int readTimeoutMillis = new Request.Options().readTimeoutMillis();
  // 連接超時時間
  private int connectTimeoutMillis = new Request.Options().connectTimeoutMillis();
}

編程方式自定義:你只需要提供Request.Options類型的Bean即可。

配置定義

#全局定義
feign.client.config.default.connect-timeout=3000
feign.client.config.default.read-timeout=3000
#具體服務定義
feign.client.config.demoService.connect-timeout=2000
feign.client.config.demoService.read-timeout=2000

盲區2:重試

feign的重試相信很多人都沒有玩過對吧?

如果feign沒有啟用斷路器功能(feign.circuitbreaker.enabled, 默認值為false),那么會開啟retryer(重試)功能;默認情況openfeign提供了如下配置:

@Bean
@Scope("prototype")
@ConditionalOnMissingBean
public Feign.Builder feignBuilder(Retryer retryer) {
  return Feign.builder().retryer(retryer);
}
// 默認還是個不支持重試的,所以我們需要自定義重試Bean
@Bean
@ConditionalOnMissingBean
public Retryer feignRetryer() {
  return Retryer.NEVER_RETRY;
}

自定義重試bean

@Bean
public Retryer feignRetryer() {
  Retryer.Default retryer = new Retryer.Default(100, SECONDS.toMillis(1), 2);
  return retryer ;
}

這樣如果當前環境沒有cricuitbreaker,那么這里的重試就能生效了。

盲區3:服務降級

通常定義了feign客戶端后,我們都會定義相應的降級服務,fallback或fallbackFactory,如果這兩個都配置了那誰才會生效呢?源碼如下:

class FeignCircuitBreakerTargeter implements Targeter {
  public <T> T target(FeignClientFactoryBean factory, Feign.Builder feign, FeignContext context,
      Target.HardCodedTarget<T> target) {
    // ...
    FeignCircuitBreaker.Builder builder = (FeignCircuitBreaker.Builder) feign;
    String name = !StringUtils.hasText(factory.getContextId()) ? factory.getName() : factory.getContextId();
    // 先判斷了fallback屬性,如果不是void,那么直接返回了
    Class<?> fallback = factory.getFallback();
    if (fallback != void.class) {
      return targetWithFallback(name, context, target, builder, fallback);
    }
    Class<?> fallbackFactory = factory.getFallbackFactory();
    if (fallbackFactory != void.class) {
      return targetWithFallbackFactory(name, context, target, builder, fallbackFactory);
    }
    return builder(name, builder).target(target);
  }
}

盲區4:primary屬性

在@FeignClient注解中有個primary屬性,你知道這個屬性有什么用嗎?

默認每一個feign客戶端都被注冊為bean,并且每個bean都相當于使用了@Primary注解修飾一樣,任何地方注入都是有限注入的該bean。它的用處還得從fallback屬性說起。如果定義了feign客戶端后對應的fallback是需要實現當前這個feign接口的,且還的注冊為bean對象。那么如果把這里的primary設置為false后,容器中此時可是存在兩個DemoFeign類型的bean的,這時候容器啟動就會報錯了。所以這里默認就吧feign客戶端的primary設置為true就是解決這個問題的。示例如下:

@FeignClient(
    url = "http://localhost:8088/demos", 
    name = "demoService", 
    fallback = DemoFeignFallback.class
    primary = true // 默認即為true
)
public interface DemoFeign {}


@Component
public class DemoFeignFallback implements DemoFeign {
}

盲區5:動態刷新超時時間

盲區1中已經提到了超時時間問題,那都是寫靜態配置,那能不能動態配置呢?可以,完全可以,你只需下面這樣操作即可

#開啟刷新配置
feign.client.refresh-enabled=true

實現的原理也比較簡單就是:向容器中注冊了一個OptionsFactoryBean類型的bean且該Bean的作用域范圍是refresh。當我們調用/refresh endpoint后就會刷新該Bean的配置信息。

先就列出上面5個知識點吧,看看你知道幾個?

完畢!??!

責任編輯:武曉燕 來源: Spring全家桶實戰案例源碼
相關推薦

2023-02-15 08:12:19

http超時過濾器

2019-11-25 21:46:12

數據湖云計算數據倉庫

2023-07-13 09:01:39

Bean接口容器

2024-02-26 08:19:00

WebSpring容器

2016-05-30 17:31:34

Spring框架

2021-05-17 06:02:58

Css前端CSS 特效

2021-04-27 22:27:19

手機安卓蘋果

2019-10-24 09:09:28

MySQLACIDJava

2018-01-29 15:23:14

網絡知識點軟件測試

2023-03-02 11:52:00

自定義自動配置

2020-02-18 08:01:55

在家辦公Kakfa知識點大全

2024-06-28 09:37:14

技巧.NET開發

2023-09-27 18:02:31

2009-08-05 09:22:43

C#調用VC DLL

2021-04-13 08:25:12

測試開發Java注解Spring

2022-08-18 09:51:50

Python代碼循環

2022-05-24 14:07:53

OpenFeignSpring開源

2013-10-17 15:30:04

方法調用object

2025-10-15 02:15:00

SpringHTTP客戶端

2019-04-24 16:40:18

Redis數據庫
點贊
收藏

51CTO技術棧公眾號

午夜先锋成人动漫在线| 色网在线免费观看| 国产黄色精品视频| 国产+成+人+亚洲欧洲| 中日韩精品一区二区三区| 亚洲综合av一区二区三区| 亚洲免费在线电影| 久久香蕉综合色| 国产精品玖玖玖| 99综合在线| 中文字幕亚洲激情| 黄色国产在线视频| 91另类视频| 亚洲大型综合色站| 亚洲一区二区精品在线| 性感美女视频一二三| 蜜臀av一区二区在线观看| 欧美成人h版在线观看| 久久久无码人妻精品一区| 免费看日产一区二区三区| 欧美性猛交xxxx黑人| www婷婷av久久久影片| 国产资源在线播放| 北条麻妃国产九九精品视频| 国产精品色婷婷视频| 中日韩精品视频在线观看| 91tv官网精品成人亚洲| 亚洲人成免费电影| 日本在线不卡一区二区| 国产精品毛片aⅴ一区二区三区| 欧美日韩国产一区在线| 国产一区二区三区在线视频| 欧美久久久久久久久| 国产一区二区三区高清视频| 亚洲天堂网视频| 亚洲影视在线| 性欧美在线看片a免费观看| 日本激情视频一区二区三区| 国产不卡一区| 日韩国产在线播放| 无码成人精品区在线观看| 精品视频一区二区三区| 欧美日韩精品一二三区| 亚洲人成无码www久久久| sm性调教片在线观看| 亚洲国产日韩精品| 日韩精品一区二区免费| 在线免费观看污| 亚洲人成网站色在线观看| 中文字幕一区二区三区四区五区六区 | 国产高潮在线观看| 精品一区二区三区久久| 国产一区二区在线播放| 中文字幕视频一区二区| 奇米色一区二区三区四区| 日韩av免费看网站| 男人天堂视频在线| 日韩国产精品久久久| 国产精品电影一区| 精品国产www| 蜜臀va亚洲va欧美va天堂| 国产精品久久久久久网站| 日本欧美www| 蜜桃在线一区二区三区| 国产精品黄视频| 中文在线观看av| 精品亚洲成a人| 91免费国产视频| www.av网站| 成人黄色在线网站| 开心色怡人综合网站| 免费在线看v| 国产精品国模大尺度视频| 宅男一区二区三区| 怡红院av在线| 五月综合激情婷婷六月色窝| 日韩中文字幕在线视频观看| 欧美最新精品| 欧美美女直播网站| 亚洲欧美高清在线| 杨幂一区二区三区免费看视频| 亚洲全黄一级网站| 国精产品一区一区二区三区mba| 亚洲无中文字幕| 97精品一区二区三区| 国产精品尤物视频| 国产精品一二三| 欧美日韩精品久久| 国产一二三区在线观看| 亚洲成av人片一区二区三区| 欧美 日韩 国产 激情| 电影中文字幕一区二区| 亚洲国产高潮在线观看| 性欧美精品男男| 欧美精品aa| 国产精品高潮呻吟久久av野狼 | 日韩天堂在线观看| 欧美成人午夜精品免费| 91国语精品自产拍| 欧美一级电影免费在线观看| 一级日韩一级欧美| 97精品电影院| 糖心vlog在线免费观看| 日韩精品99| 精品日韩欧美一区二区| 一级片久久久久| 亚洲天堂激情| 91精品啪aⅴ在线观看国产| 无套内谢的新婚少妇国语播放| 国产精品久久夜| 草草久久久无码国产专区| 亚洲一区av| 一区二区成人av| 亚洲精品视频在线观看免费视频| 精品一二线国产| 欧洲视频一区二区三区| 中文字幕在线观看播放| 欧美色倩网站大全免费| 好吊一区二区三区视频| 亚洲色图国产| 91精品美女在线| 久久天堂电影| 天天亚洲美女在线视频| 少妇高潮一69aⅹ| 999精品色在线播放| 日韩av色在线| 三级国产在线观看| 亚洲国产成人va在线观看天堂| 三级性生活视频| 日韩久久精品| 国产98色在线| 欧美在线观看在线观看| 午夜视频在线观看一区二区三区| 又色又爽又黄视频| 日韩欧美精品| 国产精品视频久久久| 久久手机免费观看| 日韩欧美一区二区三区久久| 精品国产一区在线| 狠狠噜噜久久| av成人综合网| 日本资源在线| 精品国产凹凸成av人导航| 麻豆精品一区二区三区视频| 亚洲性视频在线| 在线观看日韩欧美| 久久久久精彩视频| 国产欧美日韩视频在线观看| 国产成人久久777777| 自拍视频一区| 国产精品69av| 超碰在线国产| 欧美日韩国产综合草草| 18啪啪污污免费网站| 捆绑变态av一区二区三区| 亚洲黄色成人久久久| 欧美aaa级| 久久久999国产精品| 99久久久国产精品无码免费| 亚洲乱码国产乱码精品精98午夜| 极品人妻一区二区| 欧美网站在线| 精品蜜桃传媒| 日韩高清在线| 综合国产在线观看| 国产一区二区小视频| 亚洲欧美日韩成人高清在线一区| wwwxxxx在线观看| 亚洲国产91| 久久久久欧美| 国产精品99| 久久国产精品久久久久| 色窝窝无码一区二区三区成人网站| 黑人巨大精品欧美一区二区免费| 久久久久久九九九九九| 美国欧美日韩国产在线播放| 真人做人试看60分钟免费| 福利片一区二区| 日本一区二区不卡| 日本三级视频在线播放| 日韩精品一区二区三区中文不卡| 日本三级小视频| 国产精品乱子久久久久| 性农村xxxxx小树林| 石原莉奈在线亚洲三区| 天天做天天爱天天高潮| 欧美交a欧美精品喷水| 国产精品99久久99久久久二8| 日本在线视频观看| 精品成人免费观看| 中文字幕网址在线| 亚洲成av人综合在线观看| 久久久久久国产免费a片| 国产一区二区三区黄视频 | 可以免费看av的网址| 国产精品 日产精品 欧美精品| 99色精品视频| 一区二区日韩欧美| 欧美一区二区三区成人久久片| 精品一区二区三区中文字幕在线| 日韩免费在线观看视频| av在线免费网址| 亚洲天堂免费在线| 性生活免费网站| 欧美色欧美亚洲另类二区| 国产精品二区一区二区aⅴ| 国产精品视频免费看| 男人网站在线观看| 国内精品伊人久久久久av一坑| 内射国产内射夫妻免费频道| 先锋资源久久| 午夜精品亚洲一区二区三区嫩草| 黄色欧美网站| 91在线免费网站| 中文另类视频| 2020国产精品视频| 少妇av在线| 久久夜精品香蕉| 国产精品一区在线看| 日韩精品免费电影| 超碰福利在线观看| 欧美一区二区久久| 艳妇乳肉豪妇荡乳av| 色欧美日韩亚洲| www.日本精品| 亚洲国产欧美在线| 欧美被狂躁喷白浆精品| 自拍偷自拍亚洲精品播放| 在线观看亚洲大片短视频| 91网站视频在线观看| 最新日本中文字幕| 国产毛片一区二区| 91国内在线播放| 日韩成人免费电影| 久久精品视频91| 久久国产66| 成年网站在线免费观看| 午夜一区二区三区不卡视频| 成人网站免费观看入口| 欧美视频二区| 蜜臀av色欲a片无码精品一区 | 91视频观看视频| 香港三级日本三级| 91在线国内视频| 亚洲精品女人久久久| 不卡一二三区首页| 国产精品无码电影| 99久久婷婷国产| 国产精品第七页| 久久婷婷国产综合精品青草| theav精尽人亡av| 久久色成人在线| 亚洲永久精品ww.7491进入| 久久综合999| 毛片aaaaaa| 最新不卡av在线| 欧美日韩免费做爰视频| 亚洲一区二区在线播放相泽 | 91久久线看在观草草青青| 狠狠人妻久久久久久综合| 在线观看免费一区| 国产精品久久欧美久久一区| 欧美一区二区大片| 欧美一级性视频| 亚洲欧美日韩区| 国产三级视频在线看| www.日韩av.com| 黄页网站在线观看免费| 456亚洲影院| 91另类视频| 成人91免费视频| 久久精品亚洲成在人线av网址| 欧美精品久久| 91日韩视频| 久久久久久久久久久99| 日韩精品一二三| www.偷拍.com| 91亚洲精品一区二区乱码| 九九热免费在线| 一区二区三区在线播放| xxxx.国产| 欧美另类变人与禽xxxxx| 亚洲风情第一页| 亚洲欧洲在线免费| 午夜影院免费在线| 国产va免费精品高清在线| 成人97精品毛片免费看| 狠狠色综合色区| 99久久久久| 黄色网页免费在线观看| 日本麻豆一区二区三区视频| 国产伦精品一区二区三区妓女下载| av在线不卡电影| 国产日产精品一区二区三区的介绍| 亚洲自拍偷拍欧美| 真实新婚偷拍xxxxx| 亚洲成人av在线播放| 在线观看麻豆蜜桃| 久久久亚洲影院| 欧美视频第一| 裸模一区二区三区免费| 亚洲网色网站| 色婷婷狠狠18| 97久久超碰精品国产| 1024手机在线视频| 欧美日韩精品久久久| 天天射,天天干| 欧美人成在线视频| 精品肉辣文txt下载| 久久精品一区二区三区不卡免费视频 | 久久精品99久久久| 久操视频免费看| 亚洲成av人片在线| 国产夫妻性生活视频| 国产香蕉97碰碰久久人人| 美女高潮视频在线看| 亚洲一区二区日本| 久久中文亚洲字幕| www日韩视频| 久久久久久久久免费| 日本少妇性生活| 欧美α欧美αv大片| 黄色片免费在线观看| 国产精品揄拍一区二区| 国产日韩欧美一区二区三区| 日本在线xxx| 成人av网址在线| 久久久久香蕉视频| 日韩一级精品视频在线观看| 久草中文在线观看| 国产精品揄拍一区二区| 成人同人动漫免费观看| 国产第一页视频| 久久久91精品国产一区二区三区| 国产成人无码精品久在线观看| 亚洲成人网在线| free性护士videos欧美| 国产精品有限公司| 亚洲精品美女| 色天使在线视频| 欧美视频不卡中文| 你懂的在线观看| 国产精品99久久久久久人| 精品免费视频| 婷婷免费在线观看| 中文字幕一区三区| 国产又粗又猛又爽| 久久精视频免费在线久久完整在线看| 欧美美女被草| 久久久天堂国产精品| 国产成人免费视频精品含羞草妖精| 国产精品白嫩白嫩大学美女| 日韩欧美国产精品| 182在线视频观看| 欧美精品v日韩精品v国产精品| 久久精品女人| 成人无码精品1区2区3区免费看 | 免费黄频在线观看| 亚洲欧美一区二区久久| 亚洲a视频在线| 91成人在线观看国产| 精品99在线| 日本中文字幕二区| 亚洲一区二区三区四区在线免费观看 | 免费人成精品欧美精品| 亚洲色图100p| 日韩午夜激情电影| 日韩激情电影| 亚洲蜜桃在线| 国产成人亚洲综合a∨猫咪| 日韩三级免费看| 伊人伊人伊人久久| 麻豆精品在线| 欧美丰满熟妇bbbbbb百度| 国产日韩精品一区二区浪潮av| 91尤物国产福利在线观看| 久久99久久久久久久噜噜| 色哟哟精品丝袜一区二区| 天天爽天天爽夜夜爽| 一区二区欧美视频| 免费a在线观看| 亚洲综合中文字幕68页| 99精品热6080yy久久| 刘亦菲国产毛片bd| 精品日韩一区二区三区免费视频| 亚洲精华液一区二区三区| 自拍偷拍一区二区三区| 99国产精品一区| 国产三级三级在线观看| 91av视频在线观看| 国产精品久久久久久久免费观看 | 欧美激情精品久久久久久蜜臀| 日韩最新在线| 亚洲欧美日韩一二三区| 欧美色另类天堂2015| 中文在线字幕免费观看| 欧美成熟毛茸茸复古| 国产精品小仙女| 中文字幕a级片| 情事1991在线|