宣告式HTTP客戶端 Feign

2021-10-03 13:08:36 字數 2853 閱讀 1930

用feign重構之前的**

之前的**:

/**

* 1.**不可讀

* 2、複雜的url難以維護

* 3.難以響應需求的變化,變化很沒有幸福感

* 4、程式設計體驗不統一

);

改造**:

org.springframework.cloud

spring-cloud-starter-openfeign

在啟動類上加上@enablefeignclients註解

自定義的feign配置類**(如果該類上有@configuration,則需要把該類放到啟動類所在的包之外,參考ribbon的細粒度配置時的額spring父子上下文問題):

package com.itmuch.contentcenter.configuration;

import feign.logger;

import org.springframework.context.annotation.bean;

public class usercenterfeignconfiguration

}

* 在配置檔案中新增配置
logging:

level:

#springboot設定日誌級別

com.itmuch: debug

# feign的日誌級別是建立在feign的介面的日誌級別是debug的基礎上,如果為其他級別,則什麼都不會列印

com.itmuch.contentcenter.configuration.usercenterfeignconfiguration: debug

# 配置屬性方式自定義feign的日誌級別

feign:

client:

config:

# 想要呼叫的服務的名稱

user-center:

loggerlevel: full

配置屬性方式

# 配置屬性方式指定全域性feign的日誌級別

feign:

client:

config:

# 全域性設定為default

優先順序:全域性**配置《全域性屬性配置《細粒度**配置《細粒度屬性配置

* 寫配置
feign

# 配置feign連線池,使用apache連線池的時候是httpclient,使用okhttp時是okhttp

# 讓feign使用apache httpclient做請求;而不是預設的urlconnection

enabled: true

# feign 的最大連線數

max-connections: 200

# feign單個路徑的最大連線數

max-connections-per-route: 50

Feign宣告式客戶端介面

feign是netflix開發的宣告式 模板化的http客戶端,feign可以幫助我們更快捷 優雅地呼叫http api。在spring cloud中,使用feign非常簡單 建立乙個介面,並在介面上新增一些註解,就完成了。feign支援多種註解,例如feign自帶的註解或者jax rs註解等。sp...

Feign客戶端的日誌

一 介紹 很多場景下,需要了解feign處理請求的具體要求,處理feign遠端呼叫介面的日誌列印,那麼如何滿足這種需求呢?feign對日誌的處理非常靈活,可為每個feign客戶端指定日誌記錄策略,每個feign客戶端都會建立乙個logger。預設情況下,logger的名稱是feigh介面的完整類名。...

客戶端負載均衡Feign之四 Feign配置

設定連線超時時間 ribbon.connecttimeout 500 設定讀取超時時間 ribbon.readtimeout 5000 對所有操作請求都進行重試 ribbon.oktoretryonalloperations true 切換例項的重試次數 ribbon.maxautoretriesn...