解決openFeign遠程調用超時的異常


1.異常信息

使用openFeign遠程調用時出現如下異常

feign.RetryableException: Read timed out executing GET http://service-user/...

2.原因

因為默認時間太短,我們可以配置連接時間

3.解決方法

編寫配置類:

package com.gh.config;

import feign.Request;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @Author Eric
 * @Date 2021/6/27 17:27
 * @Version 1.0
 */
@Configuration
public class ServiceFeignConfiguration {
    @Value("${service.feign.connectTimeout:60000}")
    private int connectTimeout;

    @Value("${service.feign.readTimeOut:60000}")
    private int readTimeout;

    @Bean
    public Request.Options options() {
        return new Request.Options(connectTimeout, readTimeout);
    }
}

在遠程調用時使用配置類:

例如:

package com.gh.client;

import com.gh.config.ServiceFeignConfiguration;
import com.gh.model.user.Patient;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

/**
 * @Author Eric
 * @Date 2021/6/26 16:32
 * @Version 1.0
 */
@Component
@FeignClient(value="service-user",configuration = ServiceFeignConfiguration.class)
public interface PatientFeignClient {

    @GetMapping("/api/user/patient/inner/get/{id}")
    public Patient getPatientById(@PathVariable("id") Long id);
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM