问题标签 [spring-cloud-feign]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
40845 浏览

rest - 无法让 Feign Client 为基本示例工作

无法让 Feign Client 工作。首先尝试使用 POST。不断遇到与编码器/解码器相关的错误,说类型不正确。然后在github上找到了一个调用简单GET API的例子,决定试一试。仍然失败

在 Github 和在线上,我看到多个版本的 Feign Client Spring-Cloud、OpenFeign、Netflix.feign 有不同的版本。谁能描述一个应该用于生产的最好和稳定的 Feign 客户端是什么?

应用:

尝试了所有可能的注释排列,认为它可以解决 AutoWire 的问题,但仍然失败

2016-07-20 18:15:42.406[0;39m [31mERROR[0;39m [35m32749[0;39m [2m---[0;39m [2m[主][0;39m [36mo.s.boot .SpringApplication [0;39m [2m:[0;39m 应用程序启动失败

org.springframework.beans.factory.BeanCreationException:创建名为“testWLCController”的bean时出错:注入自动装配的依赖项失败;嵌套异常是 org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有 com.paa.controllers.GetFeignClient com.paa.controllers.TestWLCController.gfClient;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名称为“com.aa..controllers.GetFeignClient”的 bean 时出错:FactoryBean 在创建对象时抛出异常;嵌套异常是 java.lang.NullPointerException at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:334) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE] at组织。run(SpringApplication.java:1180) [spring-boot-1.3.5.RELEASE.jar:1.3.5.RELEASE] at com.paa.ServiceApplication.main(ServiceApplication.java:44) [bin/:na] 由:org.springframework.beans.factory.BeanCreationException:无法自动装配字段:私有com.paa.controllers.GetFeignClient com.paa.controllers.TestWLCController.gfClient;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名称为“com.paa.controllers.GetFeignClient”的 bean 时出错:FactoryBean 在创建对象时抛出异常;嵌套异常是 java.lang.NullPointerException 在 org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:573) ~[spring-beans-4.2.6.RELEASE.jar:4.2.6.RELEASE ] 在 org.springframework.beans。

0 投票
0 回答
360 浏览

spring-security-oauth2 - 特定 FeignClient 的 RequestIntercepor

我有一个 RequestInterceptor,我在其中自动将 OAuth2ClientContext 中的 AccessToken 复制到 RequestTemplate 的标头中,以便内部服务使用来自启动场景的移动设备的相同 AccessToken 无缝地相互调用。这就是我们管理服务方法授权的方式。这是拦截器代码:

这是@Beans 配置:

问题是有不同的 FeignClients,其中一部分用于 3rd 方服务,例如我们用于 SMS 文本的服务,我不想在那里发送 AccessToken。

我如何在 RequestInterceptor 内部确定它来自什么 FeignClient?

0 投票
2 回答
6954 浏览

spring-cloud - Spring Cloud Feign:Feign与RestTemplate相比是否足够高效?

我快速浏览了 Feign 的源代码,发现 Feign 使用 JDKHttpUrlConnection发出 HTTP 请求并在请求完成时关闭它,而不使用连接池。我怀疑这种方式的效率。然后我阅读了 Spring 的文档,上面RestTemplate写着RestTemplate可以切换到 Apache Http Client 或 OKHttp 来发送 HTTP 请求:

注意:默认情况下,RestTemplate 依赖于标准 JDK 工具来建立 HTTP 连接。您可以通过 HttpAccessor.setRequestFactory(org.springframework.http.client.ClientHttpRequestFactory) 属性切换到使用不同的 HTTP 库,例如 Apache HttpComponents、Netty 和 OkHttp。

是不是说从性能上看 RestTemplate 比 Feign 好?

0 投票
2 回答
3095 浏览

spring-cloud - Spring Cloud:如何在@FeignClient 中配置Hystrix

我有以下服务:

如何更改默认超时和线程池大小?

0 投票
0 回答
2844 浏览

spring-cloud - Feign:Spring 无法在 jar 文件中自动装配 @FeignClient bean

我有@FeignClient声明ea.jar

我将此 jar 添加为 maven 依赖项,然后注入它:

我总是得到NoSuchBeanDefinitionException

但是,如果我将@FeignClient声明移到同一个项目中(不作为 jar 依赖项添加),这个异常就消失了。

这个我不太清楚,求助

0 投票
5 回答
34000 浏览

spring - spring boot feign客户端获取HTTP 404

我目前正在检查如何在我的一个项目中使用 Feign 作为声明式 REST 客户端。

以下是 Feign 客户端

此接口在一项服务中自动装配

将 EnableFeignClients 添加到 SpringBootApplication

pom.xml 中的依赖项、父项等

依赖

在为我的 feign 客户端调试 spring create 代理时,我可以看到我尝试在功能区的帮助下调用此服务,它工作正常,但是当我在我的 feign 客户端中执行方法定义时。我得到feign.FeignException: status 404 reading

0 投票
2 回答
5753 浏览

spring-boot - java.lang.IllegalStateException:没有可用于 ip 的实例

下面是我的 bom 微服务:

上面的微服务正在尝试对另一个微服务进行休息调用,部分微服务:

我得到以下异常:

Eureka、BOM 和 Part 微服务部署在 azure 上。Eureka 注册了微服务,并且我可以使用“/service-instances/plm-part-ms”在 bom 微服务中分割微服务细节,其中“plm-part-ms”是部分微服务的 Spring 应用程序名称。任何帮助将不胜感激 !

0 投票
0 回答
364 浏览

spring-boot - 我们如何使用 Spring Cloud 和 Spring Boot 的合格属性在 Eureka 中发现服务

我们有大约 50 个使用 Spring Boot 开发的微服务。我们使用 Spring Cloud 向 Eureka 注册服务,并使用 Feign 从消费者那里调用服务。合同非常标准,消费者使用带有@FeignClient("<foo>")注释的接口来定位在fooEureka 中注册的服务。在运行一个或多个服务实例的情况下,目标服务上的注册、查找和调用都按预期工作。

我们有一个新要求,即同一个服务foo可能运行多个实例,每个实例都有特定的原型名称。例如,一些实例foo预计将处理 3rd 方集成同步工作负载,而一些实例foo预计将处理内部消息(异步工作负载)。我们已经定义了一个stereotype在服务中调用的配置属性,该属性将在引导程序中定义(通过 Spring Cloud 配置的一部分完成)来告诉服务实例处理syncasync工作负载。配置如下所示:

另外,我们在注册服务的时候也将这个属性eureka.instance.metadatamap作为属性添加到了Eureka的map中。我可以看到 Eureka 现在在注册时会显示此服务值。stereotypefoofoo

到目前为止,一切都很好。现在的问题:

或假装中是否有配置(或注释)机制DiscoveryClient来查找foo但使用stereotype作为限定符。换句话说,当我的消费者应用程序查找 Eureka 时,它能否以某种方式告诉 Eureka 只给出例如stereotypeis的实例async?如果这是可能的,那么我的消费者组件可以确保异步工作负载只发送到foo处理异步工作负载的实例。

到目前为止,在我的研究中,我还没有发现任何东西。我编写了一个示例(可能会被DiscoveryClient覆盖),它将使用此处GET /eureka/v2/apps/appID概述的 Eureka REST 接口,然后通过查找返回的每个实例的元数据映射来找到目标端点。但这听起来像是蛮力。理想情况下,我希望使用现有机制之一(如果可用)来执行此操作,以便我可以继续使用 Feign 的负载平衡和重试功能,而不是重新发明轮子。

0 投票
1 回答
2411 浏览

spring-cloud-netflix - Spring Cloud Feign:发出POST请求时Feign没有将参数放入HTTP正文中

这是我的 Feign 接口定义:

虽然这是一个POST请求,但 feign 仍然将pageandsize放入 URL 而不是请求正文:

我不知道为什么

0 投票
1 回答
2812 浏览

java - 在 HystrixFeign 客户端回退中获取原因的问题

我有 HystrixFeign 客户端,我正在尝试在我的回退实现中获取原因/异常,因为我真的很想知道回退的原因,以便我可以解决服务调用失败的问题。但是下面的实现并没有让我明白原因。这工作得很好,并且回退一直被调用。但我不知道为什么。我是 Feign 和 Hystrix 的新手。我的应用程序是 1.6 年前用 java 编写的,这是一种增强调用。所以我不能使用任何 lambda 表达式。

我有如下定义的客户端接口

我的 FeignClientFacory 如下所示