Feign相关的使用

1. 配置feign后报错Load balancer does not have available server for client: xxx

系统间调用报错:Load balancer does not have available server for client: xxx
分析:是否配置的value和注册到eureka上的名字保持一致
定位:
1.打开eureka注册中心,找到相对应的项目,复制该项目名,如test
2.找到代码写feign接口处

@FeignClient(value = "test",configuration = {FeignRequestIntercepter.class})
public interface TestFeignClient {
    @GetMapping("/v2/test")
    Response test(@RequestHeader Long projectId);
}

如上,在接口中的value属性中一定要保持一致,为test

2.Feign的默认超时时间为1秒,想修改超时时间

如果想要配置超时时间,在 application.yml 中添加如下:

feign:
  client:
    config:
      系统名:
        readTimeout: 3000
        connectTimeout: 3000

updateTime :2024.12.03

Feign是一个基于Java的HTTP客户端库,用于简化API的调用。如果你想让Feign通过HTTPS协议与远程服务通信,你需要配置一下FeignClient的实例,并提供HTTPS相关的设置。以下是基本步骤: 1. **添加依赖**: 首先,在你的Maven或Gradle构建文件中,确保包含了Feign和OkHttp(或者直接Spring Web Client,如果使用Spring的话)对HTTPS的支持。例如,如果你使用的是Spring Boot,可以在`build.gradle.kts`中加入以下依赖: ```groovy implementation("io.github.openfeign:feign-core") // Feign核心库 implementation("io.github.openfeign:feign-spring-webclient") // 如果使用Spring WebClient implementation("com.squareup.okhttp3:okhttp") // 或者替换为spring-boot-starter-okhttp ``` 2. **配置HTTPS连接**: 使用Spring的`RestTemplate`或者Feign的`@FeignClient`注解时,需要指定HTTPS相关的属性。例如,可以创建一个Feign客户端工厂,然后传递给`@FeignClient`: ```java @Configuration public class MyFeignConfig { @Bean public OkHttpClient httpClient() { return new OkHttpClient.Builder() .sslSocketFactory(SSLContextBuilder.forClient().build(), (x509TrustManager) -> {})) // 添加信任管理器 .build(); } @Bean @FeignClient(name = "myApi", url = "${api.url}", client = OkHttpClient.class) public MyApi myApiClient(OkHttpClient okHttpClient) { return Feign.builder() .client(new OkHttpClientWrapper(okHttpClient)) // 包装原OkHttpClient以支持HTTPS .target(MyApi.class, "https://your-api-url.com"); } } ``` 这里`SSLContextBuilder`用于创建一个默认的信任管理模式,通常在生产环境中,你需要加载自定义的证书链。 3. **环境变量**: 确保在启动应用时,设置了HTTPS URL的环境变量或者配置,如`${api.url}`。 4. **调用API**: 你可以像平时一样通过`@FeignClient`引用的服务来调用API了,比如: ```java @Autowired private MyApi myApiClient; public void callMyEndpoint() { MyResponse response = myApiClient.myMethod(); // 使用HTTPS请求 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值