问题标签 [reactive-feign-client]

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 投票
1 回答
778 浏览

spring-webflux - 如何将 Prometheus 与 ReactiveFeignClient 集成以测量从客户端调用返回的每个状态代码的响应时间/点击次数

我有一个带有 WebFlux + Spring Reactor 的 Spring Boot 项目,它使用ReactiveFeignClient.

如何集成 Prometheus 以便我可以监控响应时间(使用 a @Timer)和 feign 调用返回的每个状态代码的百分比?像 200, 400, 404... 我只找到了以下方法:

  • 监控端点响应时间/状态码(http_server_requests_seconds
  • 监视器RestTemplate(如此处所述:https ://docs.spring.io/spring-metrics/docs/current/public/prometheus ,但我使用 feign)

在我完成了所有工作之后,我在 Prometheus 输出中没有看到响应式 feign 客户端仪表,即使我将 logger 的 bean 定义为:

此外,我发现无法启用/actuator/prometheus,而只能启用/_system/check/prometheus。我确实启用并公开了 和 的metrics端点prometheus

0 投票
1 回答
319 浏览

reactive-programming - ReactiveFeignClient - 如何在没有身份验证的情况下将标头从控制器传播到客户端

我在我的控制器端点中收到X-Forwarded-HostX-Forwarded-Proto,并且端点有一个反应管道来调用 ReactiveFeignClient 类。

这些标头应该传播到我的客户端请求,但正如我所见,它没有。我Principal在这个管道中没有,因为端点不需要身份验证,所以我不能使用ReactiveSecurityContextHolder.withAuthentication(user)

我已经添加了一个WebFilter从请求中读取标头:

但我不知道我可以在客户端的配置中从哪里检索它们并将它们Context放入客户端的请求中。

现在我这样做:(

和:

但不转发任何标题。

0 投票
1 回答
865 浏览

spring-cloud-feign - 为 Spring ReactiveFeignClient 使用动态 URL

我正在使用来自 Playtika 的 ReactiveFeignClient 我需要使用动态 URL,尤其是对于主机部分,因为我想对具有相同请求和响应格式但主机不同的多个服务使用相同的接口。每个服务上的 URL 可以有不同的主机名和前缀,但都具有相同的后缀。例如:

  • http://localhost:3001/games/purchase
  • http://localhost:3002/gadgets/phone/purchase

实际上我不知道它是否具有与非反应式 feign 客户端相同的行为。我遵循关于如何在运行时更改假冒 URL 的建议?.

这是客户端界面。

这是自动配置

但是,我收到错误消息,表明没有名称为 dummy 的服务。这确实只是一个虚拟名称,因为 @ReactiveFeignClient 注释需要 name 参数,我想将该接口用于多个服务。

如何使@ReactiveFeignClient 的动态网址成为可能

0 投票
1 回答
2018 浏览

spring - 使用 Webflux 的反应式 Feign

我从这里(https://github.com/Playtika/feign-reactive)使用 Reactive Feign 实现,但即使我尝试使用 Spring WebClient 我也有同样的问题。

当我使用 POST 请求调用 URL 并传递 JSON 正文时,流从未完成。线程保持冻结等待完成,它永远不会发生。

但是,当我打电话subscribe()时,什么也没有发生,请求仍然被冻结。当我调用block()方法时,它会引发以下异常:

运行调试,我得到了这个日志:

有没有办法提出这个请求?

0 投票
0 回答
164 浏览

java - Feign 客户端 URL 格式错误

我尝试使用 FeignClient 拨打电话,但我被告知该网址格式错误。

在我的 yml 文件属性中,我有:

这是启动时的错误:

请你知道如何解决这个问题。谢谢

0 投票
3 回答
5941 浏览

spring-boot - SpringBoot FeignClient 与 WebClient

我想消费几个休息服务。之前用过RestTemplate,现在想知道SpringBoot FeignClient 和WebClient 的主要区别是什么?什么时候应该使用它们?

0 投票
0 回答
83 浏览

spring-boot - 如何在 feign client spriong Boot 中设置值

在邮递员中,我可以通过以下方式通过查询 influxDb 成功执行以下 rest api:

现在,在我的 spring boot 项目中,我试图以这种方式在 feign 客户端界面中使用它:

这是我的 Service 类中使用 feignClient 方法的 getAll 方法:

}

但是当我尝试从我的服务类中执行其中一个 get 方法时,我得到了这个异常:

0 投票
0 回答
123 浏览

java - 找不到类型为“服务”的接口 reactivefeign.ReactiveFeignBuilder 的 bean

我创建了一个简单的 Reacting Feign Client

现在,当我在我的服务类中 @Autowire 时,IntelliJ 给出了一个错误:

无法自动接线。找不到“MechanicClient”类型的 bean。

这是我的主要课程:

pom.xml

当我启动服务器时,出现以下错误:

org.springframework.beans.factory.UnsatisfiedDependencyException:创建名为“helloWorldController”的bean时出错:通过字段“mechClient”表示的依赖关系不满足;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为 'com.emech.customer.config.feign.MechanicClient' 的 bean 时出错:FactoryBean 在创建对象时抛出异常;嵌套异常是 java.lang.IllegalStateException: No bean found of type interface reactivefeign.ReactiveFeignBuilder for mechanic-service at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:660) ~[spring-beans -5.3.10.jar:5.3.10] 在 org.springframework.beans.factory.annotation。

谁能指导我,我缺少什么,我是 Reactive Feign Client 的新手。谢谢

0 投票
1 回答
96 浏览

java - 反应式假装客户端全局重试

我正在从 feign 客户端切换到响应式 feign 客户端,我为 feign 定义了全局重试器:

使用非反应式客户端重试工作正常,使用反应式客户端错误解码器会引发 RetryableException,但 Retryer 没有反应 - 不执行重试。我主要使用 webflux Mono<T>,有没有办法让它工作,或者 Retryer 不能用于响应式假装?如果是这样,是否可以定义“全局重试”或者我是否需要为每个呼叫/单声道定义重试?

0 投票
0 回答
42 浏览

java - 在 Java 中处理 GraphQL 请求中不存在的字段

我有一个 GraphQL 应用程序正在运行。在另一个应用程序中,我正在尝试发送省略字段的突变请求(使用 Java)。如何确保 GraphQL 可以按预期处理我的请求。例如,如果我有 MyInput = {field1: "val1", field2: null},并且我只想更新 field1。如何构造一个请求,以便 GraphQL 将其作为 {field1: "val1"} 处理?