问题标签 [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.
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 一起工作呢?
提前致谢。
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:
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.
java - 用 okhttp 区分连接超时和读取超时
我正在使用带有弹簧的功能区的 okhttp。我希望在连接超时而不是读取超时时重试另一个服务实例(原因很明显)。此重试将由自定义功能区重试处理程序处理。但要做到以上几点,我需要区分读取超时和连接超时。okhttp 的行为如下:
读取超时:
/li>连接超时:
/li>
根据异常消息做出决定似乎不是一个好主意。实现这一目标的推荐方法是什么?
spring-boot - 带有企业代理的 Spring Cloud Feign/Ribbon
我想在具有身份验证的公司代理后面使用来自外部世界的 REST 服务。
如何配置 Spring Boot + Spring Cloud Feign/Ribbon 以使用我们的代理?
spring-cloud - 无法使用服务器列表配置 @FeignClient
我无法配置@FeignClient
要使用的服务器列表。我正在使用 Spring Cloud Netflix,但此特定服务 ( foo-service
) 未在 Eureka 注册。出于这个原因,我需要foo-service
在 YML 文件中配置服务器列表。
但是,listOfServers
永远不会读取,因此操作失败,因为 Feign/Ribbon 没有单个服务器可供使用。
我在这里做错了什么?
我的假客户:
在 bootstrap.yml 中:
在 Spring Boot 应用程序中如何配置 Feign 客户端:
spring - 服务器关闭时负载平衡失败
总之,我添加spring-boot-starter-actuator
了为了添加/health
端点。
在 Zuul/Ribbon 配置中,我添加了:
这样,每次客户端调用时GET http://localhost:7070/service/home
,负载均衡器都会选择两个 HomeService 中的一个,它们在 8080 或 8081 端口上运行并调用其端点/home
。
但是,当 HomeService 之一关闭时,负载均衡器似乎没有意识到(尽管进行了ServerListRefreshInterval
配置),并且error=500
如果它尝试调用关闭实例,它将失败。
我该如何解决?
spring - 使用 Ribbon 进行负载平衡
关于 Ribbon 选择服务器的方式,我有一个简短的问题。
假设我有两个可以由 Ribbon 选择的服务。Ribbon 如何知道选择哪个服务?它是否检查这两项服务以了解哪一项服务的过载较少?如果是,它是否调用/metrics
并考虑了哪个指标?
非常感谢您的回答
java - 替换所有服务的 ConfigurationBasedServerList
使用 Ribbon,如果您想使用自定义ServerList
实现而不是ConfigurationBasedServerList
特定服务的默认实现,您可以在应用程序配置文件中这样做:
我的问题是我想替换ConfigurationBasedServerList
我声明使用的所有服务的默认值MyCustomServerList
的默认值。
我可以为每个服务添加先前的属性块,但这可能会无限增长。
有没有办法声明MyCustomServerList
为默认值?
我也尝试过将此 bean 添加到我的@Configuration
课程中,但它似乎只在我第一次发出请求时才起作用:
spring - Spring Ribbon 统计
我有一个 Spring Boot 微服务,我将 @LoadBalanced 与 Ribbon 一起使用,就像一个魅力。
但现在我正在寻找是否有办法从功能区收集统计数据或指标。
有没有办法以编程方式获取这些信息?
当应用程序启动时,我可以看到如下统计信息: