说明

当使用feign远程调用接口是,如果接口返回异常或者超时时,我们可以统一返回异常信息,这样调用者就不用再显式的try-catch处理异常了

开启接口fallback处理

想要使用fallback 处理接口异常须在配置文件开启

feign:
  hystrix:
    enabled: true

定义feign接口

在@FeignClient上加属性fallback,并将自定义的fallback类赋值给fallback

@FeignClient(name = "stockFeign", url = "http://stock-center.qd-aliyun-test-internal.haier.net", fallback = StockFeignFallback.class)
public interface StockFeign {

    @PostMapping("/api/v1/transferorder/queryBatchImportTransferOrder11")
    FeignResultDto<Page<TransferImportListOutDto>> queryBatchTransferOrder(@RequestBody PageQueryDto<TransferImportListInDto> pageQueryDto);

}

定义fallback类

说明:定义类需要被spring管理,需要实现feign接口

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.test.boot.param.FeignResultDto;
import com.test.boot.param.PageQueryDto;
import com.test.boot.param.TransferImportListInDto;
import com.test.boot.param.TransferImportListOutDto;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

@Slf4j
@Component
public class StockFeignFallback implements StockFeign {
    
    public FeignResultDto<Page<TransferImportListOutDto>> queryBatchTransferOrder(PageQueryDto<TransferImportListInDto> pageQueryDto) {
        log.info("接口异常=========");
        return new FeignResultDto<>(500, "接口异常", null);
    }
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。