為什麼要學習feign
簡答 遠端呼叫 不用自己去書寫url
feign英譯為:假裝 裝作
feign可以把rest的請求進行隱藏,偽裝成類似springmvc的controller一樣。你不用再自己拼接url,拼接引數等等操作,一切都交給feign去做。
快速入門:
第一步:
匯入依賴:
>
>
org.springframework.cloudgroupid
>
>
spring-cloud-starter-openfeignartifactid
>
dependency
>
第二步:
在啟動類上加上注釋:
@enablefeignclients // 開啟feign功能
fegin的客戶端:
@feignclient
("user-service"
)public
inte***ce
userfeignclient")
user queryuserbyid
(@pathvariable
("id"
) long id)
;}
@autowired
private userfeighclient userfeighclient;
public user queryuserbyid(long id)
feign中本身已經整合了ribbon和hystrix
因此我們不需要額外引入依賴,也不需要再註冊resttemplate
物件。
配置ribbon:
ribbon
:connecttimeout
:250
# 連線超時時間(ms)
readtimeout
:1000
# 通訊超時時間(ms)
oktoretryonalloperations
:true
# 是否對所有操作重試
maxautoretriesnextserver:1
# 同一服務不同例項的重試次數
maxautoretries:1
# 同一例項的重試次數
user-service
:ribbon
:connecttimeout
:250
# 連線超時時間(ms)
readtimeout
:1000
# 通訊超時時間(ms)
oktoretryonalloperations
:true
# 是否對所有操作重試
maxautoretriesnextserver:1
# 同一服務不同例項的重試次數
maxautoretries:1
# 同一例項的重試次數
feign中的fallback配置不像ribbon中那樣簡單了。
首先,我們要定義乙個類,實現剛才編寫的userfeignclient,作為fallback的處理類
@component
public
class
userfeignclientfallback
implements
userfeignclient
}
然後在userfeignclient中,指定剛才編寫的實現類
@feignclient
(value =
"user-service"
, fallback = userfeignclientfallback.
class
)public
inte***ce
userfeignclient")
user queryuserbyid
(@pathvariable
("id"
) long id)
;}
想要測試熔斷是否成功可以將service生產者關掉 然後再訪問頁面 feign的簡單實現
feign可以把rest的請求進行隱藏,偽裝成類似springmvc的controller一樣。你不用再自己拼接url,拼接引數等等操作,一切都交給feign去做。feign的使用 建立乙個介面,在介面上新增一些註解 feign支援多種註解,例如feign自帶的註解或者是jax rs註解等。spri...
Feign自定義配置應用
環境 nacos 1.3.1 啟動nacos cd usr local nacos bin sh startup.sh m standalone 2.自定義feign的配置 1 新增依賴 加入nacos discovery發現服務的依賴 web actuator用於監控檢查,新增openfeign依...
關於 Feign 的使用中,簡單事項
關在前後端 呼叫 大多數是 json,今天對接第三方免登入授權,對方介面規範非檔案上傳也要求form表單,先用postman呼叫,正常返回 後在 實現 總是302,起初懷疑2點,1授權失敗 2 是否postman自動做了重定向所以成功 這裡提一下 uri 是為了動態訪問相應服務位址 最終通過兩種方式...