精品欧美一区二区三区在线观看 _久久久久国色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伊人| 黄色www网站| 亚洲一区二区影视| 91精品观看| 日韩欧美国产高清| 国产中文字幕免费观看| av资源种子在线观看| 久久99最新地址| 欧美国产精品va在线观看| 中国xxxx性xxxx产国| 国产不卡网站| 成人免费一区二区三区在线观看| 91精品入口蜜桃| 国产精品第5页| 国产精品久久久久久久久久10秀| 日韩欧美在线1卡| 天天摸天天碰天天添| 国产不卡在线| 久久亚洲影视婷婷| 亚洲xxxx在线| 亚洲大片免费观看| 欧美日韩一区二区国产| 国产午夜精品美女视频明星a级| 永久免费黄色片| 桃花岛成人影院| 一区二区三区在线观看国产| 日本一区网站| 韩国av在线免费观看| 日一区二区三区| 欧美激情亚洲自拍| 极品色av影院| 久久成人高清| 亚洲国产另类 国产精品国产免费| 一区二区三区国产免费| 精品众筹模特私拍视频| 国产精品美女久久久久久久| 欧美日韩国产精品一卡| 日韩中文字幕免费观看| 韩国av一区二区三区| 国产精品v片在线观看不卡| 国产一级大片在线观看| 91欧美大片| 一个人www欧美| 日韩av一二区| 欧美男人操女人视频| 日韩精品一区二区三区swag| 九九九九九国产| 欧美大片1688网站| 一本色道久久综合亚洲aⅴ蜜桃| 人人妻人人做人人爽| 成人看av片| 中文字幕色av一区二区三区| 亚洲精品高清视频| а天堂8中文最新版在线官网| 99精品热视频| 国产综合欧美在线看| 不卡的日韩av| 国产剧情一区二区三区| 91久久在线观看| 国产又黄又粗又长| 精品影视av免费| 国产主播精品在线| 中文字幕一二区| 另类综合日韩欧美亚洲| 国产在线观看不卡| 国产伦一区二区| 国产乱码字幕精品高清av| 亚洲综合国产精品| 丰满人妻av一区二区三区| 国产成人av一区二区| 成人高清在线观看| 秋霞网一区二区| 99久久99久久综合| 欧美视频小说| 91在线网址| 亚洲乱码国产乱码精品精98午夜 | 国产精品女主播av| 视频一区二区在线观看| 69久久久久| 亚洲视频你懂的| 永久免费看av| av免费不卡国产观看| 欧美日韩综合视频| 欧美日韩亚洲一二三| 小说区图片区亚洲| 欧美不卡一区二区三区四区| 手机在线成人av| 禁断一区二区三区在线| 中文字幕一区二区精品| 亚洲xxxx3d动漫| 国产精品分类| 日本高清+成人网在线观看| 亚洲精品无码久久久久| 国内精品国产成人| 久久99精品久久久久久水蜜桃| 免费在线黄色影片| 1024精品合集| 天天夜碰日日摸日日澡性色av| 成人在线爆射| 日韩美女在线视频 | 国产精品久久久久久久久久白浆| 日韩激情av在线播放| 国产白丝一区二区三区| 欧美日韩国产欧| 国产成人精品电影久久久| 夜夜骚av一区二区三区| 成人精品视频.| 视频在线一区二区三区| 国产桃色电影在线播放| 欧美私模裸体表演在线观看| 伦伦影院午夜理论片| 伊人久久大香线蕉综合网站 | 91九色porn在线资源| 欧美自拍偷拍午夜视频| 野战少妇38p| 日韩在线欧美| 奇米四色中文综合久久| 成 人片 黄 色 大 片| 国产日韩欧美高清| 国产69精品久久久久999小说| 久久久久久久性潮| 亚洲精品美女在线| 青青青在线视频| 蜜桃视频在线观看一区| 狠狠久久综合婷婷不卡| 很黄的网站在线观看| 色www精品视频在线观看| 少妇熟女视频一区二区三区| 国产一区二区三区四区大秀| 久久久久国产精品一区| 国产精品一级视频| 欧美激情一区二区三区四区| 18岁网站在线观看| 综合久久成人| 欧美理论电影在线播放| 亚洲午夜激情视频| 国产喷白浆一区二区三区| 91好吊色国产欧美日韩在线| 视频亚洲一区二区| 久久精品亚洲热| 九九热最新视频| 久久青草欧美一区二区三区| 成人午夜精品久久久久久久蜜臀| 欧美第一在线视频| 精品国产一区二区三区久久| 国产精品免费无遮挡无码永久视频| www.66久久| 成人免费观看在线| 中文字幕一区日韩精品| 欧美高清电影在线看| 国产亲伦免费视频播放| 最新国产精品久久精品| 天堂网成人在线| 国产精品久久久久久麻豆一区软件| 国产精品久久久久久久天堂| 国产在线观看免费| 色婷婷综合久久久久中文一区二区| 国产精品无码在线| 国产欧美日韩一区二区三区在线| 国产高清一区二区三区| 97人澡人人添人人爽欧美| 精品国产免费视频| 日本三级2019| 99精品久久99久久久久| 日韩黄色片视频| 国产伦一区二区三区| 欧洲日本亚洲国产区| 国产三级视频在线播放线观看| 色94色欧美sute亚洲线路二| av女人的天堂| 久久精品99国产精品日本| 在线视频福利一区| 亚洲精品福利| 国内精品视频在线| 日韩欧美在线观看一区二区| 色一情一乱一乱一91av| 在线观看免费黄色网址| 韩国午夜理伦三级不卡影院| japanese在线播放| 欧美国产不卡| 国产精品美女在线| 直接在线观看的三级网址| 欧美精品一区二区久久久| 波多野结衣国产| 亚洲国产精品成人综合色在线婷婷| 一本色道久久亚洲综合精品蜜桃 | 中日韩美女免费视频网址在线观看| 中文字幕第一页在线播放| 亚洲男人的天堂在线aⅴ视频| 免费看三级黄色片| 久久九九电影| 小说区视频区图片区| youjizzjizz亚洲| 国产成+人+综合+亚洲欧洲| 国产精品一卡二卡三卡| 日韩成人在线视频| 伊人久久成人网| 亚洲一区二区三区视频在线播放| 五月婷婷综合在线观看| 精品一区二区日韩| a在线视频观看| 日韩毛片视频| 精品蜜桃一区二区三区| 欧美黄色成人| 欧美性视频网站| 老司机99精品99| 日韩激情视频在线播放| 国产男男gay体育生白袜| 日韩欧美亚洲成人| 欧美极品aaaaabbbbb| 欧美极品xxx| 国产女人18毛片水真多18 | 亚洲一区二区三区四区精品| 亚洲欧美激情诱惑| 国产人妻人伦精品| 成人在线免费小视频| 国模一区二区三区私拍视频| 欧美与亚洲与日本直播| 国模视频一区二区三区| 蜜桃av在线免费观看| 亚洲欧美在线免费观看| 黄色aaa毛片| 91精品国产综合久久香蕉的特点 | 精品麻豆一区二区三区| 亚洲人成五月天| 色噜噜在线播放| 日韩久久久精品| 中文字幕乱码中文字幕| 一本色道久久综合亚洲精品按摩| 久久久久免费看| |精品福利一区二区三区| www..com.cn蕾丝视频在线观看免费版 | av网站手机在线观看| 久久久久久久久久久久久久| 日韩精彩视频| 亚洲精品亚洲人成在线| 黄色99视频| 99久久婷婷国产综合精品青牛牛| 91久久久久久久久| 国产成人免费视频网站视频社区| 国产精品吹潮在线观看| 成人软件在线观看| 国产99在线|中文| 日韩欧美精品一区二区三区| 久久免费视频在线观看| 国产蜜臀在线| 久久久女女女女999久久| 免费在线观看的电影网站| 欧美成人免费大片| 日本中文字幕中出在线| 欧美成人一区二区三区电影| www.在线视频| 欧美床上激情在线观看| 呦呦在线视频| 色综合色综合久久综合频道88| 五月花成人网| 久久久久国色av免费观看性色| 日韩av激情| 午夜精品一区二区三区在线播放| 免费网站在线观看人| 久久久这里只有精品视频| 成人在线高清免费| 亚洲97在线观看| 97人人爽人人澡人人精品| 欧美最猛性xxxxx免费| 欧美大电影免费观看| 国产激情999| 欧美一区二区三区婷婷| 91在线免费看网站| 999在线精品| 黄色99视频| 欧美三级美国一级| 国产精品美女在线播放| 欧美阿v一级看视频| 久久精品无码中文字幕| 免费看的黄色欧美网站| 亚洲一区在线不卡| 国产麻豆成人精品| 精品1卡二卡三卡四卡老狼| 99久久精品国产导航| 自拍偷拍视频亚洲| 自拍偷拍欧美激情| 日本亚洲欧美在线| 色999日韩国产欧美一区二区| 97人妻人人澡人人爽人人精品| 日韩美一区二区三区| 青青草免费观看免费视频在线| 一区二区av在线| a级网站在线播放| 欧美亚洲第一区| 欧美一区二区三区婷婷| 国产亚洲欧美一区二区三区| 精品国产91| 欧美日韩dvd| 久久久久久黄| 男插女视频网站| 91麻豆国产香蕉久久精品| 亚洲一二三四五六区| 精品久久久精品| 91片黄在线观看喷潮| 亚洲国产成人久久综合| 亚洲搞黄视频| 欧美黑人又粗大| 国产69精品久久久久按摩| 国产欧美日韩亚洲| 91嫩草亚洲精品| 成人在线免费在线观看| 国产精品99久久久久久似苏梦涵 | 日日摸天天爽天天爽视频| 美女脱光内衣内裤视频久久网站 | 日韩一二三区在线观看| 日本一区免费观看| 国产主播一区| 中日韩av在线播放| 91视频国产观看| 欧美黑人一级片| 欧美日韩一级二级三级| 三级毛片在线免费看| 欧美国产日本高清在线| 欧美性aaa| 欧美一区二区三区成人久久片| 国产一区清纯| 伊人国产精品视频| 国产日韩欧美制服另类| 99免费在线观看| 欧美一区二区二区| 三区四区电影在线观看| 日产日韩在线亚洲欧美| 琪琪久久久久日韩精品 | 亚洲欧美日本视频在线观看| 国产一级片中文字幕| 国产精品久久久久久久久免费丝袜| 日韩中文字幕在线观看视频| 亚洲成人激情在线观看| 欧美hdxxxx| 91色在线视频| 欧美大片aaaa| 日本在线一二三区| 中文字幕高清一区| 中文字幕乱码无码人妻系列蜜桃| 国产亚洲成精品久久| 日产精品一区| 日本一区二区三区免费观看| 亚洲一区欧美二区| 亚洲精品理论片| 欧美性猛交xxxx| 欧美大片aaa| 日本免费久久高清视频| 亚洲欧美日本伦理| 黑人粗进入欧美aaaaa| 国产午夜亚洲精品不卡| 男人的天堂av网站| 亚洲午夜性刺激影院| 亚洲精品在线影院| 亚洲 国产 日韩 综合一区| 免费成人在线视频观看| 老司机福利在线观看| 欧美日韩国产免费一区二区| 日本三级视频在线播放| 91精品在线一区| 欧美在线网站| 老司机免费视频| 高潮白浆女日韩av免费看| 青青草免费观看免费视频在线| 国产成人精品最新| 久久看人人摘| 久久精品一二三四| 亚洲高清免费在线| 色综合久久网女同蕾丝边| 国产成人在线亚洲欧美| 欧美丰满老妇| 欧美熟妇精品一区二区 | 波多野结衣人妻| 北条麻妃在线一区二区| 一区二区三区在线免费看| 91专区在线观看| 欧美国产精品专区| www.com欧美| 欧美在线xxx| 999精品一区| 日本50路肥熟bbw| 色婷婷综合久久久中文一区二区| 毛片在线看网站| 国产日韩欧美一区二区| 天堂久久久久va久久久久| 最新黄色av网址| 亚洲激情视频在线播放| 91成人在线| 国产一区二区片| 国产色一区二区| 精品人妻一区二区三区蜜桃| 欧美一区二区影院| 久久精品青草| 久久久无码人妻精品一区| 欧美精品1区2区| 女厕盗摄一区二区三区| 色香蕉在线观看| 91看片淫黄大片一级在线观看| 中文字幕免费播放| 亚州精品天堂中文字幕|