最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringCloud Feign高級配置詳解

 更新時間:2022年09月01日 10:21:13   作者:悠然予夏  
這篇文章主要介紹了SpringCloud Feign高級配置,feign是netflix提供的服務(wù)間基于http的rpc調(diào)用框架,在spring cloud得到廣泛應(yīng)用

1、Feign對負載均衡的支持

Feign 本身已經(jīng)集成了Ribbon依賴和自動配置,因此我們不需要額外引入依賴,可以通過 ribbon.xx 來進行全局配置,也可以通過服務(wù)名.ribbon.xx 來對指定服務(wù)進行細節(jié)配置配置(參考之前,此處略)

Feign默認的請求處理超時時長1s,有時候我們的業(yè)務(wù)確實執(zhí)行的需要一定時間,那么這個時候,我們就需要調(diào)整請求處理超時時長,F(xiàn)eign自己有超時設(shè)置,如果配置Ribbon的超時,則會以Ribbon的為準。

Ribbon設(shè)置

#針對的被調(diào)用方微服務(wù)名稱,不加就是全局生效
lagou-service-resume:
  ribbon:
    #請求連接超時時間
    ConnectTimeout: 2000
    #請求處理超時時間
    ReadTimeout: 15000  # Feign 超時時間設(shè)置
    #對所有操作都進?重試
    OkToRetryOnAllOperations: true
    ####根據(jù)如上配置,當訪問到故障請求的時候,它會再嘗試訪問?次當前實例(次數(shù)由MaxAutoRetries配置),
    ####如果不?,就換?個實例進?訪問,如果還不?,再換?次實例訪問(更換次數(shù)由MaxAutoRetriesNextServer配置),
    ####如果依然不?,返回失敗信息。
    MaxAutoRetries: 0 #對當前選中實例重試次數(shù),不包括第?次調(diào)?
    MaxAutoRetriesNextServer: 0 #切換實例的重試次數(shù)
    NFLoadBalancerRuleClassName:  com.netflix.loadbalancer.RoundRobinRule #負載策略調(diào)整

2、Feign對熔斷器的支持

在Feign客戶端工程配置文件(application.yml)中開啟Feign對熔斷器的支持。

# 開啟Feign的熔斷功能
feign:
  hystrix:
    enabled: true

Feign的超時時長設(shè)置那其實就上面Ribbon的超時時長設(shè)置,Hystrix超時設(shè)置(就按照之前Hystrix設(shè)置的方式就OK了)

注意:

  • 開啟Hystrix之后,F(xiàn)eign中的方法都會被進行一個管理了,一旦出現(xiàn)問題就進入對應(yīng)的回退邏輯處理
  • 針對超時這一點,當前有兩個超時時間設(shè)置(Feign/hystrix),熔斷的時候是根據(jù)這兩個時間的最小值來進行的,即處理時長超過最短的那個超時時間了就熔斷進入回退降級邏輯

hystrix:
  command:
    default:
      execution:
        isolation:
          thread:
            timeoutInMilliseconds: 15000

自定義FallBack處理類(需要實現(xiàn)FeignClient接口)

package com.lagou.edu.controller.service;
import org.springframework.stereotype.Component;
/**
 * 降級回退邏輯需要定義一個類,實現(xiàn)FeignClient接口,實現(xiàn)接口中的方法
 * 此接口是我們進行Feign遠程調(diào)用時所創(chuàng)建的接口
 */
@Component
public class ResumeFallback implements ResumeServiceFeignClient{
    @Override
    public Integer findDefaultResumeState(Long userId) {
        return -6;
    }
}

在@FeignClient注解中關(guān)聯(lián)2)中自定義的處理類

package com.lagou.edu.controller.service;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
// @FeignClient標明當前類是一個Feign客戶端,value指定該客戶端要請求的服務(wù)器名稱(登記到注冊中心上服務(wù)提供者的服務(wù)名稱)
@FeignClient(value = "lagou-service-resume", fallback = ResumeFallback.class, path = "/resume") 
// 使?fallback的時候,類上的@RequestMapping的url前綴限定,改成配置在@FeignClient的path屬性中
// @RequestMapping("/resume")
public interface ResumeServiceFeignClient {
    // feign要做的事情,拼裝url發(fā)起請求
    // 我們調(diào)用該方法就是調(diào)用本地接口方法,那么實際上做的事遠程請求
    @GetMapping("/openstate/{userId}")
    public Integer findDefaultResumeState(@PathVariable Long userId);
}

3、Feign對請求壓縮和響應(yīng)壓縮的支持

Feign 支持對請求和響應(yīng)進行GZIP壓縮,以減少通信過程中的性能損耗。通過下面的參數(shù)即可開啟請求與響應(yīng)的壓縮功能:

feign:
    compression:
        request:
            enabled: true # 開啟請求壓縮
            mime-types: text/html,application/xml,application/json # 設(shè)置壓縮的數(shù)據(jù)類型,此處也是默認值
            min-request-size: 2048 # 設(shè)置觸發(fā)壓縮的??下限,此處也是默認值
        response:
            enabled: true # 開啟響應(yīng)壓縮

4、Feign的日志級別配置

Feign是http請求客戶端,類似于咱們的瀏覽器,它在請求和接收響應(yīng)的時候,可以打印出比較詳細的?些日志信息(響應(yīng)頭,狀態(tài)碼等等)

如果我們想看到Feign請求時的日志,我們可以進行配置,默認情況下Feign的日志沒有開啟。

開啟Feign日志功能及級別

// Feign的?志級別(Feign請求過程信息)
// NONE:默認的,不顯示任何?志----性能最好
// BASIC:僅記錄請求?法、URL、響應(yīng)狀態(tài)碼以及執(zhí)?時間----?產(chǎn)問題追蹤
// HEADERS:在BASIC級別的基礎(chǔ)上,記錄請求和響應(yīng)的header
// FULL:記錄請求和響應(yīng)的header、body和元數(shù)據(jù)----適?于開發(fā)及測試環(huán)境定位問題
import feign.Logger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class FeignLog {
    @Bean
    Logger.Level feignLevel() {
        return Logger.Level.FULL;
    }
}

配置log日志級別為debug

logging:
  level:
    # Feign?志只會對?志級別為debug的做出響應(yīng)
    com.lagou.edu.controller.service.ResumeServiceFeignClient:  debug

到此這篇關(guān)于SpringCloud Feign高級配置詳解的文章就介紹到這了,更多相關(guān)SpringCloud Feign內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring boot異步(Async)任務(wù)調(diào)度實現(xiàn)方法

    spring boot異步(Async)任務(wù)調(diào)度實現(xiàn)方法

    在沒有使用spring boot之前,我們的做法是在配置文件中定義一個任務(wù)池,然后將@Async注解的任務(wù)丟到任務(wù)池中去執(zhí)行,那么在spring boot中,怎么來實現(xiàn)異步任務(wù)的調(diào)用了,下面通過本文給大家講解,需要的朋友參考下
    2018-02-02
  • JDK15正式發(fā)布(新增功能預(yù)覽)

    JDK15正式發(fā)布(新增功能預(yù)覽)

    這篇文章主要介紹了JDK15正式發(fā)布,新增功能預(yù)覽,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2020-09-09
  • java高效打印一個二維數(shù)組的實例(不用遞歸,不用兩個for循環(huán))

    java高效打印一個二維數(shù)組的實例(不用遞歸,不用兩個for循環(huán))

    下面小編就為大家?guī)硪黄猨ava高效打印一個二維數(shù)組的實例(不用遞歸,不用兩個for循環(huán))。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Feign實現(xiàn)跨服務(wù)文件上傳下載

    Feign實現(xiàn)跨服務(wù)文件上傳下載

    這篇文章主要為大家詳細介紹了Feign實現(xiàn)跨服務(wù)文件上傳下載,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-04-04
  • Java實現(xiàn)簡單汽車租賃系統(tǒng)

    Java實現(xiàn)簡單汽車租賃系統(tǒng)

    這篇文章主要為大家詳細介紹了Java實現(xiàn)簡單汽車租賃系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Java 正確終止線程的方法

    Java 正確終止線程的方法

    這篇文章主要介紹了Java 正確終止線程的方法,幫助大家更好的理解和學習java 多線程的相關(guān)知識,感興趣的朋友可以了解下
    2020-12-12
  • Java利用InputStream類實現(xiàn)文件讀取與處理

    Java利用InputStream類實現(xiàn)文件讀取與處理

    在Java開發(fā)中,輸入流(InputStream)是一個非常重要的概念,它涉及到文件讀寫、網(wǎng)絡(luò)傳輸?shù)榷鄠€方面,InputStream類是Java中輸入流的抽象基類,定義了讀取輸入流數(shù)據(jù)的方法,本文將以InputStream類為切入點,介紹Java中的輸入流概念及其應(yīng)用,需要的朋友可以參考下
    2023-11-11
  • Java反射機制用法總結(jié)

    Java反射機制用法總結(jié)

    反射機制是在運行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調(diào)用它的任意一個方法和屬性;這種動態(tài)獲取的信息以及動態(tài)調(diào)用對象的方法的功能稱為java語言的反射機制。下面我們來一起學習一下吧
    2019-05-05
  • Spring中@PathVariable注解的簡單使用

    Spring中@PathVariable注解的簡單使用

    這篇文章主要介紹了Spring中@PathVariable注解的簡單使用,@PathVariable 是 Spring Framework 中的注解之一,用于處理 RESTful Web 服務(wù)中的 URL 路徑參數(shù),它的作用是將 URL 中的路徑變量綁定到方法的參數(shù)上,需要的朋友可以參考下
    2024-01-01
  • java數(shù)據(jù)庫開發(fā)之JDBC的完整封裝兼容多種數(shù)據(jù)庫

    java數(shù)據(jù)庫開發(fā)之JDBC的完整封裝兼容多種數(shù)據(jù)庫

    這篇文章主要介紹了java數(shù)據(jù)庫開發(fā)之JDBC的完整封裝兼容多種數(shù)據(jù)庫,需要的朋友可以參考下
    2020-02-02

最新評論

高台县| 佛山市| 江北区| 宜州市| 通辽市| 湖南省| 蚌埠市| 万山特区| 金阳县| 青阳县| 新乐市| 扶余县| 云林县| 武城县| 嘉鱼县| 甘孜| 兴和县| 乌兰察布市| 廊坊市| 龙泉市| 昌平区| 长寿区| 施甸县| 丹江口市| 龙泉市| 当阳市| 翁牛特旗| 尚志市| 九江县| 道真| 通许县| 大庆市| 浙江省| 当阳市| 长沙县| 尤溪县| 札达县| 广宗县| 赤水市| 庆城县| 广安市|