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

spring - 在没有 Spring Cloud 的情况下使用 RibbonClient 和 Consul 发现 Feign

我试图将 Feign 设置为与 RibbonClient 一起使用,例如MyService api = Feign.builder().client(RibbonClient.create()).target(MyService.class, "https://myAppProd");,其中 myAppProd 是我可以在 Consul 中看到的应用程序。现在,如果我为 Feign 客户端 ( @FeignClient("myAppProd"), @RequestMapping) 使用 Spring 注释,那么一切都可以正常工作,因为 Spring Cloud 模块会处理一切。

如果我想使用Feign.builder()and @RequestLine,我会得到错误: com.netflix.client.ClientException: Load balancer does not have available server for client: myAppProd.

我最初的想法是 Feign 是为与 Eureka 一起工作而构建的,只有 Spring Cloud 与 Consul 集成,但我不确定这一点。

那么,有没有办法让 Feign 在没有 Spring Cloud 的情况下与 Consul 一起工作呢?

提前致谢。

0 投票
1 回答
1022 浏览

java - Feign客户端执行失败:java.lang.reflect.InvocationTargetException

我在服务间通信负载平衡方面遇到问题。

我正在使用 spring (1.4.2),spring cloud 和 netflixOSS。

我有两个服务购物车服务和用户服务。

这是来自 shopppingcart-service 应用程序的 ShoppingCartController:

}

“检查用户”

方法来自 ShoppingCartService 类:

当我尝试执行 checkUser(userId) @HystricsCommand 方法时,我得到:java.lang.reflect.InvocationTargetException。

请帮忙。

更新 1:

购物车服务 pom.xml:

0 投票
1 回答
11954 浏览

netflix-zuul - Zuul and Ribbon integration

I have trouble understanding the connection between Zuul and Ribbon.

I think I got Zuul clear. It's a reverse proxy I can contact to reach one of my several instances of a service. It will pick the right server using a round-robin algorithm or whatever you configure it to do. It's a traditional load-balancer. To know the instances available it can use a registry like Eureka.

But I've got more trouble with Ribbon. It's sold as a client-side load balancer but what does it mean ? It doesn't need an external server ? Ribbon is embedded in the client the same way an Eureka client is ? If so how does it work ? Do I need Zuul when I use Ribbon, and vice-versa ?

On some articles, I saw that in fact, Zuul uses Ribbon by default for the load balancing part and it got me even more confused. If this is true what does "client-side" mean ? What does Zuul do except routing ?

I hope you can help me.

0 投票
1 回答
1929 浏览

java - 用 okhttp 区分连接超时和读取超时

我正在使用带有弹簧的功能区的 okhttp。我希望在连接超时而不是读取超时时重试另一个服务实例(原因很明显)。此重试将由自定义功能区重试处理程序处理。但要做到以上几点,我需要区分读取超时和连接超时。okhttp 的行为如下:

  • 读取超时:

    /li>
  • 连接超时:

    /li>

根据异常消息做出决定似乎不是一个好主意。实现这一目标的推荐方法是什么?

0 投票
3 回答
4782 浏览

spring-boot - 带有企业代理的 Spring Cloud Feign/Ribbon

我想在具有身份验证的公司代理后面使用来自外部世界的 REST 服务。

如何配置 Spring Boot + Spring Cloud Feign/Ribbon 以使用我们的代理?

0 投票
1 回答
4124 浏览

spring-cloud - 无法使用服务器列表配置 @FeignClient

我无法配置@FeignClient要使用的服务器列表。我正在使用 Spring Cloud Netflix,但此特定服务 ( foo-service) 未在 Eureka 注册。出于这个原因,我需要foo-service在 YML 文件中配置服务器列表。

但是,listOfServers永远不会读取,因此操作失败,因为 Feign/Ribbon 没有单个服务器可供使用。

我在这里做错了什么?

我的假客户:

在 bootstrap.yml 中:

在 Spring Boot 应用程序中如何配置 Feign 客户端:

0 投票
2 回答
1628 浏览

spring - 服务器关闭时负载平衡失败

我编写了一组简单的微服务,其架构如下:在此处输入图像描述

总之,我添加spring-boot-starter-actuator了为了添加/health端点。

在 Zuul/Ribbon 配置中,我添加了:

这样,每次客户端调用时GET http://localhost:7070/service/home,负载均衡器都会选择两个 HomeService 中的一个,它们在 8080 或 8081 端口上运行并调用其端点/home

但是,当 HomeService 之一关闭时,负载均衡器似乎没有意识到(尽管进行了ServerListRefreshInterval配置),并且error=500如果它尝试调用关闭实例,它将失败。

我该如何解决?

0 投票
1 回答
1529 浏览

spring - 使用 Ribbon 进行负载平衡

关于 Ribbon 选择服务器的方式,我有一个简短的问题。

假设我有两个可以由 Ribbon 选择的服务。Ribbon 如何知道选择哪个服务?它是否检查这两项服务以了解哪一项服务的过载较少?如果是,它是否调用/metrics并考虑了哪个指标?

非常感谢您的回答

0 投票
1 回答
547 浏览

java - 替换所有服务的 ConfigurationBasedServerList

使用 Ribbon,如果您想使用自定义ServerList实现而不是ConfigurationBasedServerList特定服务的默认实现,您可以在应用程序配置文件中这样做:

我的问题是我想替换ConfigurationBasedServerList我声明使用的所有服务的默认值MyCustomServerList的默认值。

我可以为每个服务添加先前的属性块,但这可能会无限增长。

有没有办法声明MyCustomServerList为默认值?

我也尝试过将此 bean 添加到我的@Configuration课程中,但它似乎只在我第一次发出请求时才起作用:

0 投票
1 回答
394 浏览

spring - Spring Ribbon 统计

我有一个 Spring Boot 微服务,我将 @LoadBalanced 与 Ribbon 一起使用,就像一个魅力。

但现在我正在寻找是否有办法从功能区收集统计数据或指标。

有没有办法以编程方式获取这些信息?

当应用程序启动时,我可以看到如下统计信息: