问题标签 [netflix-ribbon]

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

spring-cloud - Spring Cloud:使用 Ribbon 和 Feign 客户端(但不是 Eureka)缺少服务器实例

@FeignClient第一次尝试在一个简单的 REST 客户端测试应用程序中使用。我想使用 Ribbon 在两个服务器实例之间进行负载平衡,但不使用 Eureka。按照文档,我已经配置了我application.ymllistOfServers属性并禁用了 Eureka。ribbon我的客户端的名称与属性的 YAML 前缀名称相同。

application.yml

客户端代码:

当我调用应用程序时,我可以看到listOfServers功能区正在拾取:

然而,客户端然后只使用没有服务器前缀的注释的值进行调用@RequestMapping,显然失败了。

我期待它依次注入每个服务器(http:{server instance}/context-path/customers),所以我显然在这里错过了一些东西。

谁能指出我正确的方向?

谢谢,

抢。

0 投票
1 回答
709 浏览

netflix-zuul - 在 Spring Cloud zuul 上获取电路的连接统计信息

我正在运行一些微服务实例,它们充当边缘路由器并具有 @EnableZuulProxy 注释。我编写了许多过滤器,它们控制进入系统的请求流。

我想做的是从幕后发生的事情中获取电路统计数据。我看到有一个底层的 netflix 类 DynamicServerListLoadBalancer 有一些我想看到的 sts。是否可以获取它的实例并在特定时间获取它的统计信息>

我可以看到它有这样的东西:(我格式化了我在日志中看到的日志语句)

所有这些对于获取和采取行动都是有价值的。大多数情况下,行为是将使用启发式方法反馈给系统。

0 投票
1 回答
723 浏览

spring-cloud - Spring Cloud Sidecar 负载均衡不重试失败

我有以下设置:

  • Spring Cloud Eureka Server(带有 Spring Boot 应用程序@EnableEurekaServer
  • Spring Cloud Sidecar(运行:8080
  • 同一个 Spring Boot 应用程序的 2 个实例在 Eureka ( @EnableEurekaClient) 上正确注册并公开一个GET /configurations端点(在:8081and上运行:8082

所有这些都在 Java 8 + Spring Cloud 1.1.0.M5 上运行。

通过 Sidecar 调用 REST 端点:8080工作正常,请求负载平衡正确,客户端响应正确。如果我关闭 2 个应用程序实例之一并再次调用端点,客户端会收到此错误:

Sidecar 日志显示以下内容:

有趣的是,似乎检测到连接被拒绝错误(Stale connection detected)并且完成了对另一个实例的调用(我确实看到了传入的请求),但结果仍然是错误。我希望重试调用的响应返回给客户端。

这是一个里程碑错误还是我缺少一些配置来使其工作?

0 投票
0 回答
1190 浏览

java - 需要帮助配置 zuul + 功能区

我需要有关通过 Spring Boot 和 Zuul 配置功能区(负载平衡)的帮助。您可以在下面找到我的配置。

最初我会分享我当前的架构以及我想要达到的目标:

  • 我有一个带网关的节点(Spring Boot + zuul + Ribbon)
  • 我有另外两个节点将部署我的可扩展服务

祖尔配置:

只要你看到没有什么特别的。我的可扩展服务具有以下配置:

据我了解,这是一个非常常见的配置。

如果我直接向http://11.11.111.125:8092/outletsor提出请求http://11.11.111.126:8093/outlets,一切正常。

但是当我向网关发出请求时,我收到 404。我在日志中可以看到:

据我所知,服务请求不包含路径/出口。或者可能是我的功能区客户端配置错误?

而且我不知道如何解决它。

任何人都可以帮助我吗?

0 投票
1 回答
4903 浏览

spring-cloud - 春云 + 丝带 + feign + zuul + eureka

如何通过 Ribbon 对微服务进行负载均衡(不是 feign)。我有 3 个微服务“M1”、“M2”和“M2_duplication”,“M1”通过 feign 与“M2”通信。我想如果“M2”获得太多流量,请求将被转发到“M2_duplication”。这怎么可能通过@ribbonclient 实现?

聚甲醛 M1:

M1中的feign调用:

应用 M1:

0 投票
0 回答
1713 浏览

spring-cloud - 没有尤里卡的spring cloud、zuul代理和ribbon healthcheck问题

我已将我的 zuul 代理配置为与我的微服务的多个实例一起使用。我唯一做的就是将ribbon.listOfServers 关键字添加到我的配置中。

它适用于循环策略。

但是,当我关闭其中一个微服务实例功能区时,仍然会向该实例发送请求并将错误返回给客户端。

如何在 ZuulProxy 中启用 healthCheck 功能?

我的zuul配置如下图:

我的 Main Spring 类具有以下注释:

我得到以下异常:

0 投票
1 回答
8767 浏览

spring - 带有客户端证书和 Docker 的 FeignClient

我要求我的微服务使用两种方式的 ssl。每个微服务都是一个 Spring Boot 应用程序,注释为:

每个 yml 都有类似的 eureka/ribbon 配置:

每个微服务都有一个控制器,它为各种功能公开一个 rest api。

当一个微服务需要调用另一个微服务端点时,我试图通过创建该微服务的客户端接口来实现:

这是 Feign 配置:

TrustingSSLSocketFactory 类复制自:https ://github.com/Netflix/feign/blob/master/core/src/test/java/feign/client/TrustingSSLSocketFactory.java并使用我的客户端证书/密码进行了修改。

User 微服务以及其他配置的安全性配置为:

要调用客户端,我只需注入客户端,并将其作为任何其他接口调用。

用户微服务有一个返回简单回复的测试端点。

当 UserClient 尝试与用户主机建立连接时,我收到 UnknownHostException。我可能没有正确实施这一点,并希望得到一些指导。

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 投票
0 回答
137 浏览

java - 服务注册中心和外部服务

通过我的自定义应用程序,我可以使用服务注册表和功能区自动在我的RestTemplate. 我想与外部服务一样,比如说弹性搜索节点。我想要一个RestTemplate从 eureka 获取工作节点并使用此信息进行故障转移的工具。我怎样才能做到这一点?或者是否有可能以另一种方式实现相同的目标?

0 投票
0 回答
1099 浏览

spring - 如何根据 http 响应代码启用/禁用功能区负载平衡?

使用 netflix 功能区有时您不想进行负载平衡,例如,如果响应代码为 404,您不希望进行负载平衡,但对于 503,您确实需要。

现在的问题是如何配置功能区来设置我上面提到的规则?