问题标签 [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 回答
34633 浏览

spring-cloud-netflix - Spring Cloud Feign如何发送POST请求

这是我的 Feign 界面

和我的自定义配置

如果我发送这样的请求,我会看到我的请求发送 Content-Type: application/json;charset=UTF-8。但是如果我设置内容类型

我有这个错误信息

如何发送 POST 请求,我想我应该用 Encoder 做更多的事情。谢谢你的帮助。

0 投票
1 回答
2193 浏览

java - spring cloud 合约 - Feign Clients

使用 Spring Cloud 合约来验证我的生产者和消费者之间的合约。在我的消费者控制器中,我正在使用 Feign 客户端调用另一个微服务方法来获取一些数据。但是现在在春季云合同中,对这个微服务进行存根调用是不可能的。

将 Spring Cloud 与 Netflix OSS 一起使用。

Config-service 和 eureka 启动了。现在我在本地的 8090 端口安装了我的生产者。消费者使用 Feign 客户端调用生产者来获取一些数据。现在我收到 500 错误。显示找不到 URL。最接近的匹配是 /ping。我相信 Feign 客户端无法模拟,它以某种方式试图与不是来自本地安装的生产者的 eureka 连接。你能帮我吗。

任何例子或任何想法都会很棒。

谢谢

0 投票
2 回答
1497 浏览

spring-boot - Spring Boot Cloud + Ribbon + Feign + Hystrix + Zookeeper:重试和失败是怎么回事?

我正在尝试使用Ribbon + Feign + Hystrix使用spring-boot(1.5.1)创建一些服务(并且我的服务发现是 spring -boot- zookeeper)并且我不使用 Zuul。

我(天真)认为它应该以下列方式工作:

调用 Feign 方法(@FeignClientmyservice.ribbon.MaxAutoRetriesNextServer=2名称,最后如果所有重试都失败 - 它调用 Hystrix 后备方法。

所以我的 Feign 界面

定义 Hystrix FallbackFactory 以返回一些默认响应

在我的代码的某处,我有以下几行:

当所有服务都启动时(我有 2 个 MyService),Ribbon 可以很好地使用 Round Robbin,但是当我关闭一个 MyService 实例时,Ribbon 继续使用 Round Robbin,所以每第二次尝试,我都会收到 Hystrix Fallback 的结果,而不是预期成功(功能区应该在其他服务上重试,不是吗?),直到功能区服务器列表更新。

任何人都可以解释它是如何一起工作的吗?

0 投票
2 回答
5410 浏览

spring-cloud - 当实例关闭并转发到其他可用实例时,Spring Cloud Zuul 重试

使用“Camden.SR5”作为sp​​ring-cloud-dependencies,使用spring boot“1.5.2.RELEASE”。

在我目前的设置中,我有

  • 尤里卡服务器
  • 配置服务器(在随机端口上运行)
  • zuul网关服务器
  • 和 2 个服务实例(在随机端口上运行)

所有这些实例都已成功注册到 Eureka。

在此处输入图像描述

当所有服务都在运行时,通过zuul正确完成负载平衡,没有任何问题。

当一个实例被杀死时,Zuul 仍在尝试使用已关闭的相同服务来满足请求。但是,如果在关闭实例后等到获取 eureka 注册表,则使用其他“UP”实例来满足请求。




以下是与@EnableZuulProxy 和@EnableEurekaClient 一起使用的zuul 配置


服务的 2 个实例使用唯一的实例 ID 运行



您能帮我配置 zuul 和实例,以便在实例出现故障时自动将请求转发到其他可用实例。

0 投票
1 回答
3414 浏览

spring-cloud - Spring Cloud config feign fallback(CircuitBreaker) 规则

现在我在 hystrix 中使用 feign,结果发现,当 fallback 方法在 5s 内调用 20 次时,Circuit 将变为 Open 状态。我怎样才能改变这个规则。例如,当fallback方法在5s内调用50次时,让Circuit状态变为open,或者通过fallback回调率。这是我的主要java代码。

ConsumerApplication.java

UserFeignClient.java

0 投票
1 回答
25574 浏览

java - 在使用 Feign 和 Hystrix 时如何允许 400 错误传播?

我正在构建一个调用另一个微服务的 SpringBoot 微服务,并且自然希望使用 Spring Cloud 中包含的 Hystrix 和 Feign 客户端。我使用的是 Camden.SR5 版本。

对于来自 Feign 的任何超时、连接失败和 50 倍响应代码,我希望 Hystrix 能够正常工作:触发断路器并调用回退(如果已配置)等。默认情况下它会这样做,所以我很好.

但是对于 40x 响应代码,包括无效条目、错误格式的字段等,我希望 Hystrix 将这些异常传播给调用者,因此我也可以根据自己的选择处理它们。这不是我观察到的默认值。在 Spring Cloud 中如何配置 Hystrix/Feign 来做到这一点?

使用以下代码开箱即用:

生成此异常,它不能很好地将 40x 响应传递回调用者:

我当然可以查看包含 a 并隐藏在描述中的字段com.netflix.hystrix.exception.HystrixRuntimeException是JSON 响应本身,带有换行符等。但是字段 of是对自身的引用。有没有办法传播更深层次的异常而不是 HystrixRuntimeException?causefeign.FeignExceptioncausefeign.FeignException

还有一种方法可以让下游服务的响应中包含原始正文,所以我不必解构嵌套异常的消息字段?

0 投票
0 回答
690 浏览

spring - 如何使用 Mockito 模拟 feign 接口并返回 http 状态 404

我正在尝试编写一些集成测试,其中我需要模拟一些 feign 接口并在我的集成测试中将它们与 MockMvc 一起使用。模拟它们并使用 http 状态 200 提供特定结果是没有问题的,并且工作正常。例子

现在我正在寻找一种方法来模拟 feign 界面,这样我就可以模拟 20 倍以外的其他 http 状态代码,例如 404,而不提供(正文)结果。已经搜索了一段时间,但还没有找到任何东西。

有人有想法吗?

0 投票
0 回答
1305 浏览

spring-cloud - 同一接口多个客户端名称

我正在使用 feign 和 spring cloud

我有一个微服务需要调用其他 3 个微服务,这 3 个微服务中的每一个都有一个端点“/pay”,但实现方式完全不同。

如果我创建 3 个 feign 接口并调用我需要的接口,这适用于 feign。

我的目标是创建一个 feign 接口并调用我需要的服务(唯一改变的是名称,因为 3 的端点相同)但我还没有找到一种方法在接口中注入名称。

这可以使用 resttemplate 来完成,因为在运行时我知道我需要调用的服务。

这个概念背后的想法是在不改变第一个微服务的情况下添加更多微服务。

0 投票
0 回答
323 浏览

spring-security-oauth2 - 使用 Spring Cloud Feign 中继 oauth2 令牌

我正在尝试使用@EnableOAuth2Ssowith@EnableResourceServer注释将传入的Authorization令牌中继到上游服务。我似乎无法正确配置它。我不想或不需要真正配置内部 oauth2 客户端来检索令牌,它应该始终从传入请求中提取令牌。这可能吗?

0 投票
2 回答
235 浏览

java - ArangoDB 创建/更新没有新的

我正在尝试使用 arangodb rest api 和spring-cloud- feign 构建某种存储库。

当我执行 Get 时,一切都很好,我收到了应有的实体,我什至可以将_key映射到我的属性。

我的问题是当我尝试执行创建/更新(发布/补丁)时,如果我为returnNew添加查询参数,我会收到新对象,但在new中。

例如:http://localhost:8529/_db/testDB/_api/document/orderCollection?returnNew=true

有没有办法将新对象发送到新属性之外