问题标签 [spring-cloud-netflix]

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 回答
8881 浏览

spring - 如何在 Java Spring 应用程序中缓存使用 Netflix 的 Feign 库发出的 HTTP 请求

在使用 Netflix 的 Feign 向服务发出 HTTP 请求的 Spring Boot 应用程序中,是否有一种简单的方法可以自动缓存并返回这些缓存值?缓存应该基于传递给请求的参数(类似于记忆一个函数 X 分钟)。

我正在寻找类似以下@Cache注释的内容:

当然,我可以使用 . 周围的装饰器自己缓存它FacebookClient,我想知道是否有更快/更少的代码方式。

0 投票
1 回答
1221 浏览

spring-cloud - 具有功能区 + listOfServers 和日志记录要求的 Zuul 代理

嗨,我已将 Zuul (spring-cloud-netflix) 配置为使用功能区。

在将功能区添加到它之前,我能够看到哪个请求正在发送到 zuul,以及哪些请求正在发送到日志中的相关端点。

在某些时候,我添加了功能区和负载平衡功能。

现在我在日志中看不到传出请求(从 zuul 到真实端点)请求。一切正常。没有错误。但我需要在 Zuul 代理中了解/记录incomingReq->outgoingReq 信息。我的意思是我需要路由路径信息(尤其是 ip 信息)。

有没有办法查看/获取这些信息?如果可能,我想将其记录在过滤器中吗?

0 投票
1 回答
460 浏览

rabbitmq - Netflix Turbine - 服务器端口自动更新为 -1

这似乎是一个简单的问题,但我正在为此绞尽脑汁:我有一个 Netflix Turbine 被配置为在端口 8989 上运行,但在启动此模块时突然出现此日志:

这些是我认为有用的所有配置/代码/日志,以便有人给我提示:

应用程序.yml

主类:

依赖项: web、undertow、turtle-amqp、eureka 和 test

日志:

抱歉,如果问题是基本的,我发现了一些类似的问题(例如,Turbine AMQP 不接收 Hystrix 流),但是,它们都不等于我的问题。

PS:我有一个在默认端口上运行的兔子,监控仪表板,hystrix 命令和其他一切。

如果我遗漏了什么以及为什么这个服务器端口配置被-1值“覆盖”,任何人都可以给我一个线索吗?

谢谢,

0 投票
6 回答
113555 浏览

spring - 在 Feign 客户端 + Spring Cloud (Brixton RC2) 中使用带有动态值的 @Headers

是否可以为标题设置动态值?

注册 RequestInterceptor 的实现会添加标头,但无法动态设置标头值

我在 github 上发现了以下问题,其中一位评论者 ( lpborges@RequestMapping ) 试图在注释中使用标题做类似的事情。

https://github.com/spring-cloud/spring-cloud-netflix/issues/288

亲切的问候

0 投票
1 回答
164 浏览

spring-boot - Spring Netflix Hystrix Turbo.stream 按集群过滤不起作用

Spring Boot:1.3.3.RELEASE

Spring Cloud:Brixton.RC2

Hystrix Metrices 通过 Rabbit 从多个应用程序发送。

在仪表板上按集群过滤 ..../turbine.stream?cluster=[clusterName]

显示来自所有发送应用程序的指标。

这应该按 appId (clusterName) 过滤?

0 投票
0 回答
1510 浏览

spring-boot - 下游服务恢复后 Hystrix 电路未关闭

我正在玩 Josh Long 的bootiful-microservice 项目。(布里克斯顿子项目)

在预订服务上,我添加了一个简单的状态方法,它可以休眠一段可配置的时间来模拟负载:

sleepTime变量是从 Spring Config Server 中提取的

在预订客户端上,我在网关中添加了一个入口点:

我正在使用HystrixCommand

这一切都很好。

我将睡眠时间设置为 1500 毫秒,以便某些请求将高于 Hystrix 默认阈值(1000 毫秒)。

当我开始使用 API 时,由于超时,我遇到了一些失败。如果我击打的时间足够长(似乎可以工作 50 次),断路器触发并且电路打开:

Hystrix 仪表板

我的理解是,随着下游服务再次变得健康,Hystrix 将尝试路由 1 个呼叫并将其用作健康检查。如果调用成功,电路应再次关闭。

然而,这并没有发生在这里。即使将睡眠时间更改为较小的值(例如 500 毫秒),电路仍将保持打开状态。我的所有呼叫都没有路由到预订服务,并且每次呼叫都使用回退。我可以让电路再次关闭的唯一方法是重新启动预订客户端服务。

我错过了什么?Hystrix 有问题吗?还是与 Spring 集成?


更新

我做了进一步的测试,我可以确认电路将永远保持关闭,即使在睡眠减少之后也是如此。

但是,如果我在 Zuul 配置中使用路由,我会得到预期的行为。如果看到没有超时的请求,电路会自行关闭。

我注意到通过路由转发与在 Spring 中手动转发相比的另一个区别。如果我创建过滤器,我在客户端上的 /status/ 调用不会触发过滤器。当我设置路由时(例如 /foos/status => /status),它将触发过滤器并且 Hystrix 行为正常。

这是Spring中的错误吗?

0 投票
1 回答
932 浏览

spring-boot - 使用 RabbitMQ 进行消息传递的简单示例

我按照 RabbitMQ 的指南消息传递,我只是复制粘贴此网站https://spring.io/guides/gs/messaging-rabbitmq/上提供的代码,但我收到此错误,我知道为什么?

0 投票
1 回答
4282 浏览

spring-cloud - Zuul/Ribbon/Hystrix 不在不同的实例上重试

背景

我正在使用带有 Zuul 和 Eureka 的 Spring cloud Brixton.RC2。

我有一个网关服务@EnableZuulProxybook-service一个status方法。status通过配置,我可以通过休眠定义的时间来模拟该方法的工作。

Zuul 路线很简单

我运行两个实例book-service。当我将睡眠时间设置为低于 Hystrix 超时阈值(1000 毫秒)时,我可以看到请求发送到图书服务的两个实例。这很好用。

问题

我知道如果 Hystrix 命令失败,Ribbon 应该可以在不同的服务器上重试该命令。这应该使失败对客户端透明。

我阅读了 Ribbon 配置并在 Zuul 中添加了以下配置:

现在我更新配置,只有一个服务休眠超过 1s,这意味着我有一个健康服务,一个坏的。

当我调用网关时,调用会发送到两个实例,一半的调用返回 500。在网关中,我看到 Hystrix 超时:

为什么 Ribbon 不在另一个实例上重试调用?

我在这里错过了什么吗?


参考

0 投票
1 回答
21709 浏览

spring-mvc - 如何使用 Feign 客户端设置请求标头?

我们正在使用 Spring Cloud 框架开发一套微服务,我们需要做的事情之一就是设置请求标头。我知道我可以将参数传递@RequestHeader给 Feign 方法,但该值需要来自另一个 bean。我不知道 SPEL 是否可以用于 Feign 参数值。我在想这对于大多数客户来说是一个足够常见的用例,所以会有一些例子,但到目前为止我还没有找到任何例子。当然,我可以深入研究 Spring 课程代码并尝试覆盖默认的 Feign 配置,但如果我必须编写大量代码来实现这一点,它有点违背了声明式客户端的目的。有什么想法吗?

0 投票
1 回答
881 浏览

spring-boot - Netflix Zuul 在一个端口上,Hystrix Dashboard 在另一个端口上

我将 Netflix Zuul 与 Spring Boot 一起用于路由/代理目的。它侦听在 a 中定义的端口application.yml

我还想使用 Hystrix 进行断路以及拥有 Hystrix 仪表板。我通过以下注释实现了这一点:

现在我可以访问localhost:8080/hystrix. 另外,我在端口下8181设置了Spring Actuator,其management.port: 8181属性位于application.yml.

我的问题是:

  • 是否可以将 hystrix 仪表板放在其他端口下,例如 8181 或任何其他端口?所以我可以确定该端口8080仅用于路由/代理目的吗?