SpringCloud分布式項目下feign的使用示例詳解
新建一個feign的微服務(后面統(tǒng)稱為A),其他項目要使用利用maven導入該服務模塊的依賴就行了
導入依賴
<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) ; }
另外一個微服務(value的值對應)的接口實現(xiàn)(后面統(tǒng)稱為B),哪個微服務去實現(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項目中寫mapper、service層的實現(xiàn)即可
C項目要訪問B項目的接口這個時候直接訪問A項目的接口就行了
A項目只是一個橋梁,C項目中利用
使用時自動注入即可,但是記得要導入A項目的依賴
@Autowired private IArticleClient articleClient;
主啟動類還需要添加注解
服務降級處理
- 服務降級是服務自我保護的一種方式,或者保護下游服務的一種方式,用于確保服務不會受請求突增影響變得不可用,確保服務不會崩潰
- 服務降級雖然會導致請求失敗,但是不會導致阻塞。
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微服務中添加類,掃描降級代碼類的包
這里包路徑是你的
@Configuration @ComponentScan("com.heima.apis.article.fallback") public class InitConfig { }
在之前A服務的接口上添加這個
C服務開啟降級
nacos配置中心里添加如下內容,開啟服務降級,也可以指定服務響應的超時的時間
feign: # 開啟feign對hystrix熔斷降級的支持 hystrix: enabled: true # 修改調用超時時間 client: config: default: connectTimeout: 2000 readTimeout: 2000
到此這篇關于SpringCloud分布式項目下feign的使用的文章就介紹到這了,更多相關SpringCloud feign使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
關于MybatisPlus配置雙數(shù)據(jù)庫驅動連接數(shù)據(jù)庫問題
這篇文章主要介紹了MybatisPlus配置雙數(shù)據(jù)庫驅動連接數(shù)據(jù)庫的具體實現(xiàn),具體的業(yè)務邏輯,在service層的類或者方法上面添加@DataSource注解來指定該業(yè)務需要用到的數(shù)據(jù)源,需要的朋友可以參考下2022-01-01spring?retry實現(xiàn)方法請求重試的使用步驟
這篇文章主要介紹了spring?retry實現(xiàn)方法請求重試及使用步驟,本文分步驟通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07使用spring的websocket創(chuàng)建通信服務的示例代碼
這篇文章主要介紹了使用spring的websocket創(chuàng)建通信服務的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-11-11Springboot整合Java?DL4J實現(xiàn)交通標志識別系統(tǒng)全過程
在自動駕駛系統(tǒng)中,交通標志識別是實現(xiàn)車輛智能化的關鍵技術之一,本文介紹了利用SpringBoot和JavaDeeplearning4j構建交通標志識別系統(tǒng)的方法,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2024-10-10