亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Feign調(diào)用服務(wù)各種坑的處理方案

 更新時間:2021年06月24日 14:25:02   作者:YeBigBen  
這篇文章主要介紹了Feign調(diào)用服務(wù)各種坑的處理方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

1.編寫被調(diào)用服務(wù)

@RefreshScope
@RestController
public class XXXController extends BaseController implements IndicatorsFeignApi{
	@Resource
	private XXXService xxx;
	@Override
	public Wrapper<CommonVo> getXXXX(@RequestBody CommonDto commonDto) {
		try {
			CommonVo vo = xxx.getdata(commonDto);
			return WrapMapper.ok(vo);
		}catch(Exception e) {
			e.printStackTrace();
			return WrapMapper.error("系統(tǒng)異常,請聯(lián)系管理員!");
		}
	}
}
//Service不進行展示,注意參數(shù)傳遞至service層時要加入注解@RequestBody等才能獲取參數(shù)

在配置文件添加feign相關(guān)配置

在這里插入圖片描述

2.編寫調(diào)用api

在這里插入圖片描述

pom文件中添加相關(guān)依賴

org.springframework.cloud
spring-cloud-starter-hystrix
org.springframework.cloud
spring-cloud-starter-netflix-hystrix-dashboard

調(diào)用Api

@FeignClient(value = "被調(diào)用服務(wù)名")
public interface IndicatorsFeignApi {
 
 @PostMapping(value = "/api/getXXXX",consumes="application/json", headers = {"Accept=application/json", "Content-Type=application/json"})
 Wrapper<CommonVo> getXXXX(@RequestBody CommonDto commonDto); 
}

Feign調(diào)用錯誤處理,發(fā)生相關(guān)錯誤是會跳轉(zhuǎn)至fallback處理

@Component
public class IndicatorsFeignApiHystrix implements IndicatorsFeignApi {
 @Override
 public Wrapper<CommonVo> getXXXX(CommonDto commonDto) {
  System.out.println("=====調(diào)用服務(wù)獲數(shù)據(jù)發(fā)生異常======");
  return null;
 }
}

當(dāng)啟用fallback后,有些報錯不會打印在控制臺上,這時可以修改配置中的

feign:
  hystrix:
    enabled: true

將enabled改為false,錯誤發(fā)生后將不會跳轉(zhuǎn)fallback。

此處有一個坑,當(dāng)時調(diào)用的時候服務(wù)是可以調(diào)用成功的,但是有一個報錯:

Could not extract response: no suitable HttpMessageConverter found for response type [XXXX] and content type [text/html;charset=UTF-8]

貌似是返回數(shù)據(jù)的編碼與接收實體類不一樣,導(dǎo)致報錯。加上headers = {"Accept=application/json", "Content-Type=application/json"}解決了相關(guān)問題.

3.編寫客戶端服務(wù)

//serviceImp層
   @Autowired
 private IndicatorsFeignApi api;//聲明調(diào)用api
 
 @Override
 public CommonVo getXXX(CommonDto commonDto) {
  Wrapper<CommonVo> result =   api.getXXXX(commonDto);//服務(wù)調(diào)用
  if(result!=null) {
   return result.getResult();
  }else {
   return new CommonVo();
  }
 }

微服務(wù)feign調(diào)用兩邊對象不一致

一開始以為feign調(diào)用,兩邊接收的對象必須一致

再發(fā)現(xiàn)兩邊對象的字段一致即可。

在之后遇到一個問題

A服務(wù) a,b,兩個字段+ getC()方法

B服務(wù) a,b字段

出現(xiàn)異常序列化失敗-----聯(lián)想到前端解析json對象的方法,直接在B服務(wù)加上c字段,問題解決了...

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Mybatis分頁查詢的實現(xiàn)(Rowbounds和PageHelper)

    Mybatis分頁查詢的實現(xiàn)(Rowbounds和PageHelper)

    本文主要介紹了Mybatis分頁查詢的實現(xiàn)(Rowbounds和PageHelper),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • JavaWeb踩坑記錄之項目訪問不到html文件

    JavaWeb踩坑記錄之項目訪問不到html文件

    這篇文章主要給大家介紹了關(guān)于JavaWeb踩坑記錄之項目訪問不到html文件的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用JavaWeb具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-03-03
  • IntelliJ IDEA的數(shù)據(jù)庫管理工具實在太方便了(推薦)

    IntelliJ IDEA的數(shù)據(jù)庫管理工具實在太方便了(推薦)

    這篇文章主要介紹了IntelliJ IDEA的數(shù)據(jù)庫管理工具實在太方便了,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • Spring?Boot使用Hibernate-Validator校驗參數(shù)時的長度校驗方法詳解

    Spring?Boot使用Hibernate-Validator校驗參數(shù)時的長度校驗方法詳解

    這篇文章主要給大家介紹了關(guān)于Spring?Boot使用Hibernate-Validator校驗參數(shù)時的長度校驗方法的相關(guān)資料,在Spring Boot中可以使用Spring Boot Validation來對參數(shù)名稱進行校驗,需要的朋友可以參考下
    2023-08-08
  • java8中的默認垃圾回收器(GC)

    java8中的默認垃圾回收器(GC)

    這篇文章主要介紹了java8中的默認垃圾回收器(GC),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Elasticsearch模糊查詢詳細介紹

    Elasticsearch模糊查詢詳細介紹

    這篇文章主要給大家介紹了關(guān)于Elasticsearch模糊查詢的相關(guān)資料,在數(shù)據(jù)庫查詢中模糊查詢是一種強大的技術(shù),可以用來搜索與指定模式匹配的數(shù)據(jù),需要的朋友可以參考下
    2023-09-09
  • Java設(shè)計模式之java模板方法模式詳解

    Java設(shè)計模式之java模板方法模式詳解

    這篇文章主要介紹了Java設(shè)計模式模板方法模式(Template)用法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2021-09-09
  • Java中自動裝箱、拆箱引起的耗時詳解

    Java中自動裝箱、拆箱引起的耗時詳解

    這篇文章主要給大家介紹了關(guān)于Java中自動裝箱、拆箱引起的耗時的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用Java具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Spring Boot定時任務(wù)單線程多線程實現(xiàn)代碼解析

    Spring Boot定時任務(wù)單線程多線程實現(xiàn)代碼解析

    這篇文章主要介紹了Spring Boot定時任務(wù)單線程多線程實現(xiàn)代碼解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08
  • 使用 Spring Boot 實現(xiàn) WebSocket實時通信

    使用 Spring Boot 實現(xiàn) WebSocket實時通信

    本篇文章主要介紹了使用 Spring Boot 實現(xiàn) WebSocket實時通信,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-10-10

最新評論