欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解決Spring Cloud Feign 請(qǐng)求時(shí)附帶請(qǐng)求頭的問題

 更新時(shí)間:2020年10月19日 10:23:50   作者:樂之終曲  
這篇文章主要介紹了解決Spring Cloud Feign 請(qǐng)求時(shí)附帶請(qǐng)求頭的問題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

問題描述

Feign 在請(qǐng)求時(shí)是不會(huì)將 request 的請(qǐng)求頭帶著請(qǐng)求的,導(dǎo)致假如 Feign 調(diào)用的接口需要請(qǐng)求頭的信息,比如當(dāng)前用戶的 token 之類的就獲取不到

解決方案 FeignConfiguration

通過實(shí)現(xiàn) Feign 的 RequestInterceptor 將從上下文中獲取到的請(qǐng)求頭信息循環(huán)設(shè)置到 Feign 請(qǐng)求頭中。

/**
 * feign 配置文件
 * 將請(qǐng)求頭中的參數(shù),全部作為 feign 請(qǐng)求頭參數(shù)傳遞
 * @author: linjinp
 * @create: 2020-06-28 09:54
 **/
@Configuration
public class FeignConfiguration implements RequestInterceptor {
  @Override
  public void apply(RequestTemplate requestTemplate) {
    HttpServletRequest request = SpringContextUtils.getHttpServletRequest();
    Enumeration<String> headerNames = request.getHeaderNames();
    if (headerNames != null) {
      while (headerNames.hasMoreElements()) {
        String name = headerNames.nextElement();
        String values = request.getHeader(name);
        requestTemplate.header(name, values);
      }
    }
  }
}

使用

通過 configuration = FeignConfiguration.class 指定這次 Feign 請(qǐng)求走哪種配置

@FeignClient(name = "admin", contextId = "factoryPlmseriesRelation", configuration = FeignConfiguration.class)
//@FeignClient(name = "admin2", contextId = "factoryPlmseriesRelation", url = "http://127.0.0.1:8582/", configuration = FeignConfiguration.class)
public interface FeignFactoryPlmseriesRelationService {

  /**
   * 根據(jù)當(dāng)前用戶,獲取工廠與PLM關(guān)聯(lián)關(guān)系
   * @return
   */
  @GetMapping(value = "/factoryPlmseriesRelation/getFactoryPlmseriesRelation")
  ErrorMsg<List<FactoryPlmseriesRelationVo>> getFactoryPlmseriesRelation();

}

配置修改

主要是 hystrix.command.default.execution.isolation 后面的配置,需要將 hystrix 配置為信號(hào)量模式,否則會(huì)出現(xiàn)由于隔離策略導(dǎo)致獲取不到請(qǐng)求頭

# ribbon 配置
ribbon:
 OkToRetryOnAllOperations: false #對(duì)所有操作請(qǐng)求都進(jìn)行重試,默認(rèn)false
 ReadTimeout: 5000  #負(fù)載均衡超時(shí)時(shí)間,默認(rèn)值5000
 ConnectTimeout: 5000 #ribbon請(qǐng)求連接的超時(shí)時(shí)間,默認(rèn)值2000
 MaxAutoRetries: 0   #對(duì)當(dāng)前實(shí)例的重試次數(shù),默認(rèn)0
 MaxAutoRetriesNextServer: 1 #對(duì)切換實(shí)例的重試次數(shù),默認(rèn)1
# hystrix 配置
hystrix:
 command:
  default: #default全局有效,service id指定應(yīng)用有效
   execution:
    timeout:
     #是否開啟超時(shí)熔斷
     enabled: true
    isolation:
     thread:
      timeoutInMilliseconds: 10000 #斷路器超時(shí)時(shí)間,默認(rèn)1000ms
     # hystrix 隔離模式改為信號(hào)量模式,feign 才能獲取到父線程中的請(qǐng)求頭
     strategy: SEMAPHORE
     # 允許的并發(fā)量,默認(rèn)值為 10
     semaphore:
      maxConcurrentRequests: 100

總結(jié)

到此這篇關(guān)于解決Spring Cloud Feign 請(qǐng)求時(shí)附帶請(qǐng)求頭的問題的文章就介紹到這了,更多相關(guān)Spring Cloud Feign 請(qǐng)求頭內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • JavaWeb中文編碼問題實(shí)例講解

    JavaWeb中文編碼問題實(shí)例講解

    在本篇文章里小編給大家整理的是關(guān)于JavaWeb中文編碼問題方法的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們參考下
    2019-09-09
  • Spring基于AspectJ的AOP開發(fā)案例解析

    Spring基于AspectJ的AOP開發(fā)案例解析

    這篇文章主要介紹了Spring的基于AspectJ的AOP開發(fā),AspectJ是一個(gè)基于Java語(yǔ)言的AOP框架,使用AspectJ需要導(dǎo)入Spring?AOP和AspectJ相關(guān)jar包,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • JAVA中Context的詳細(xì)介紹和實(shí)例分析

    JAVA中Context的詳細(xì)介紹和實(shí)例分析

    這篇文章主要介紹了JAVA中Context的詳細(xì)介紹和實(shí)例分析,Context是維持android各組件能夠正常工作的一個(gè)核心功能類。如果感興趣來學(xué)習(xí)一下
    2020-07-07
  • Java正則表達(dá)式學(xué)習(xí)之分組與替換

    Java正則表達(dá)式學(xué)習(xí)之分組與替換

    這篇文章主要給大家介紹了關(guān)于Java正則表達(dá)式學(xué)習(xí)之分組與替換的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • Spring核心容器之ApplicationContext上下文啟動(dòng)準(zhǔn)備詳解

    Spring核心容器之ApplicationContext上下文啟動(dòng)準(zhǔn)備詳解

    這篇文章主要介紹了Spring核心容器之ApplicationContext上下文啟動(dòng)準(zhǔn)備詳解,ApplicationContext 繼承自 BeanFactory ,其不僅包含 BeanFactory 所有功能,還擴(kuò)展了容器功能,需要的朋友可以參考下
    2023-11-11
  • java實(shí)現(xiàn)數(shù)據(jù)庫(kù)的數(shù)據(jù)寫入到txt的方法

    java實(shí)現(xiàn)數(shù)據(jù)庫(kù)的數(shù)據(jù)寫入到txt的方法

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)數(shù)據(jù)庫(kù)的數(shù)據(jù)寫入到txt的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • 解析Mybatis連續(xù)傳遞多個(gè)參數(shù)的方法

    解析Mybatis連續(xù)傳遞多個(gè)參數(shù)的方法

    MyBatis是一個(gè)支持普通SQL查詢,存儲(chǔ)過程和高級(jí)映射的優(yōu)秀持久層框架,這篇文章主要介紹了Mybatis連續(xù)傳遞多個(gè)參數(shù)的方法,需要的朋友可以參考下
    2016-08-08
  • 如何基于js及java分析并封裝排序算法

    如何基于js及java分析并封裝排序算法

    這篇文章主要介紹了如何基于js及java分析并封裝排序算法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Java設(shè)計(jì)模式之觀察者模式observer?pattern詳解

    Java設(shè)計(jì)模式之觀察者模式observer?pattern詳解

    這篇文章主要介紹了Java設(shè)計(jì)模式之觀察者模式observer?pattern詳解,當(dāng)一個(gè)對(duì)象發(fā)生數(shù)據(jù)變化時(shí),通知其他相關(guān)的一系列對(duì)象,接受到通知的對(duì)象根據(jù)該對(duì)象的變化進(jìn)行相應(yīng)處理以響應(yīng)變化的過程,需要的朋友可以參考下
    2023-12-12
  • java控制臺(tái)打印本月的日歷

    java控制臺(tái)打印本月的日歷

    這篇文章主要為大家詳細(xì)介紹了java控制臺(tái)打印本月的日歷,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-12-12

最新評(píng)論