feign Read timed out

本文探讨了在使用Feign客户端调用接口时遇到的超时问题,并详细介绍了如何通过正确配置Ribbon超时时间和调整Feign接口实现来解决这一问题。通过将实现类标注为RestController并指定请求映射路径,成功避免了超时错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

feign调用超时

不知道各位有没有遇到过这种问题:

在调用feign接口的时候一直加载。。。(因为配置了ribbon超时时间的原因)
在这里插入图片描述
然后ribbon时间一到就报错
在这里插入图片描述
在网上找了原因说是配上ribbon的超时时间就可以了(这里已经配了!!)

接下来看feign接口怎么实现的

@FeignClient(name = "center-goods-service", contextId = "tempTransferOldDataToNewTable", path = "api-asyncTempTransferOldDataToNewTableService")
public interface TempTransferOldDataToNewTableService {

    /**
     * 迁移供应商信息
     */
    @PostMapping("/transferGoodsSupplierInfo")
    public void transferGoodsSupplierInfo();
}

这里 name代表的服务名称
contextId 就是注册到spring容器的名字(只有一个 center-goods-service可以省略)
path 代表的请求的路径

然后我们看接口实现

@Service
@Slf4j
public class TempTransferOldDataToNewTableServiceImpl implements TempTransferOldDataToNewTableService {

    @Resource
    private TempTransferOldDataToNewTableMapper tempTransferOldDataToNewTableMapper;

    @Resource
    private WideApiGoodsServiceImpl wideApiGoodsService;

    
    private final static String GOODS_IMGES = "view_goods_product_image";
    private final static String GOODS_LOGS = "view_goods_operation_log";
    private final static String GOODS_FEI = "view_goods_fee_info";


    
    public void transferSkuBasicInfo() {
      
        this.tempTransferOldDataToNewTableMapper.selectDataFromSanvnProductDevelopmentTable();

        

    }
}

貌似一看没什么问题
但是我们调用却出现刚开始的问题

怎么解决?
其实就是feign接口里面的路径没有在实现中展示我们这样改就可以了

@Service
@RestController
@RequestMapping("/api-asyncTempTransferOldDataToNewTableService")
public class TempTransferOldDataToNewTableServiceImpl implements TempTransferOldDataToNewTableService {

    @Resource
    private TempTransferOldDataToNewTableMapper tempTransferOldDataToNewTableMapper;

    @Resource
    private WideApiGoodsServiceImpl wideApiGoodsService;

    
    private final static String GOODS_IMGES = "view_goods_product_image";
    private final static String GOODS_LOGS = "view_goods_operation_log";
    private final static String GOODS_FEI = "view_goods_fee_info";


    
    public void transferSkuBasicInfo() {
      
        this.tempTransferOldDataToNewTableMapper.selectDataFromSanvnProductDevelopmentTable();

        

    }
}

然后我们打个断点测试一下在这里插入图片描述
断点进来了,说明可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值