SpringCloud分布式項(xiàng)目下feign的使用示例詳解

新建一個feign的微服務(wù)(后面統(tǒng)稱為A),其他項(xiàng)目要使用利用maven導(dǎo)入該服務(wù)模塊的依賴就行了
導(dǎo)入依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>定義接口
@FeignClient(value = "leadnews-article")
public interface IArticleClient {
@PostMapping("/api/v1/article/save")
public ResponseResult saveArticle(@RequestBody ArticleDto dto) ;
}另外一個微服務(wù)(value的值對應(yīng))的接口實(shí)現(xiàn)(后面統(tǒng)稱為B),哪個微服務(wù)去實(shí)現(xiàn)這個接口,value就是什么
@RestController
public class ArticleClient implements IArticleClient {
@Autowired
private ApArticleService apArticleService;
@Override
@PostMapping("/api/v1/article/save")
public ResponseResult saveArticle(@RequestBody ArticleDto dto) {
return apArticleService.saveArticle(dto);
}
}接著在B項(xiàng)目中寫mapper、service層的實(shí)現(xiàn)即可
C項(xiàng)目要訪問B項(xiàng)目的接口這個時候直接訪問A項(xiàng)目的接口就行了
A項(xiàng)目只是一個橋梁,C項(xiàng)目中利用
使用時自動注入即可,但是記得要導(dǎo)入A項(xiàng)目的依賴
@Autowired
private IArticleClient articleClient;主啟動類還需要添加注解

服務(wù)降級處理

- 服務(wù)降級是服務(wù)自我保護(hù)的一種方式,或者保護(hù)下游服務(wù)的一種方式,用于確保服務(wù)不會受請求突增影響變得不可用,確保服務(wù)不會崩潰
- 服務(wù)降級雖然會導(dǎo)致請求失敗,但是不會導(dǎo)致阻塞。
feign-api編寫降級邏輯
/**
* feign失敗配置
* @author itheima
*/
@Component
public class IArticleClientFallback implements IArticleClient {
@Override
public ResponseResult saveArticle(ArticleDto dto) {
return ResponseResult.errorResult(AppHttpCodeEnum.SERVER_ERROR,"獲取數(shù)據(jù)失敗");
}
}在C微服務(wù)中添加類,掃描降級代碼類的包
這里包路徑是你的
@Configuration
@ComponentScan("com.heima.apis.article.fallback")
public class InitConfig {
}在之前A服務(wù)的接口上添加這個

C服務(wù)開啟降級
nacos配置中心里添加如下內(nèi)容,開啟服務(wù)降級,也可以指定服務(wù)響應(yīng)的超時的時間
feign:
# 開啟feign對hystrix熔斷降級的支持
hystrix:
enabled: true
# 修改調(diào)用超時時間
client:
config:
default:
connectTimeout: 2000
readTimeout: 2000到此這篇關(guān)于SpringCloud分布式項(xiàng)目下feign的使用的文章就介紹到這了,更多相關(guān)SpringCloud feign使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解elasticsearch之metric聚合實(shí)現(xiàn)示例
這篇文章主要為大家介紹了elasticsearch之metric聚合實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-01-01
詳細(xì)分析Java內(nèi)部類——局部內(nèi)部類
這篇文章主要介紹了Java局部內(nèi)部類的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java 內(nèi)部類的知識,感興趣的朋友可以了解下2020-08-08
SpringMVC實(shí)現(xiàn)自定義類型轉(zhuǎn)換器
本篇文章主要介紹了SpringMVC實(shí)現(xiàn)自定義類型轉(zhuǎn)換器 ,詳細(xì)的介紹了自定義類型轉(zhuǎn)換器的用法和好處,有興趣的可以了解一下。2017-04-04
Java循環(huán)對bean的屬性進(jìn)行賦值的實(shí)現(xiàn)
本文主要介紹了Java循環(huán)對bean的屬性進(jìn)行賦值,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08
Spring中配置ContextLoaderListener方式
這篇文章主要介紹了Spring中配置ContextLoaderListener方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-04-04

