问题标签 [spring-cloud-loadbalancer]
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-cloud-gateway - 在 Spring Cloud Gateway 中使用具有相同发现客户端的多个负载均衡器
第一次尝试Spring Cloud Gateway。使用 2 个服务 serviceA 和 serviceB(每个都有 2 个实例)配置了一个简单的发现客户端。
我的目标是为每个服务配置 2 种不同类型的负载均衡器(服务 A 的 RandomLoadBalancer 和服务 B 的 RoundRobinLoadBalancer)。我遇到的问题是 LoadBalancerClientFactory (由过滤器用于为 lb://* url 找到正确的负载均衡器)和 DiscoveryClientServiceInstanceListSupplier 似乎都在查看loadbalancer.client.name属性以找到服务的正确负载均衡器。
因此,如果我有loadbalancer.client.name=serviceA它将仅适用于访问服务 A 的 URL。我是否使用了正确的方法,或者网关是否打算与单个负载均衡器配置一起使用?我的意思是我可以编写自己的 ClientFactory 和 ListSuppliers 实现,但只是想看看我是否遗漏了什么。
spring - 在 SCG 中将 SCLB 与多个服务器列表一起使用
我目前正在使用 SCG 访问我的服务器,
没有服务发现,我直接获取主机名和端口
我的路线豆:
我正在使用动态过滤器来修改代码中的 URL
但在某些情况下,我想在所有可能getHost
返回的主机之间进行轮询(通常我使用请求标头来查找主机),
所以对于那些情况,我createUri
以 的形式返回lb://lbid1...
,但我似乎找不到如何将 lb 链接到服务器列表
我的问题是如何在配置文件中使用 SCLB 来完成我需要添加什么?这样 lb 就会知道它应该在它们之间循环的服务器列表?
我找到的最接近的是以下答案,但它使用的是功能区而不是 SCLB
任何帮助将不胜感激
更新
我找到了解决方案
在跨服务器实例的负载平衡下
首先,注册一个 ServiceInstanceListSupplier bean
CustomServiceInstanceListSupplier
服务器返回列表中的第二个
但是现在我有另一个问题,我如何
ServiceInstanceListSupplier
在 SCG 中定义几个(因为它只有 1 serviceId
)?
ServiceInstanceListSupplier
是一个bean,因此我只能创建一个。
例如,我想创建以下 2 磅:
有人在 github 上问了同样的问题:question
但我没有看到任何动态答案(答案是使用配置spring.cloud.discovery.client.simple.instances.lbid1[i]
),虽然它确实有效,但我正在寻找使用代码的动态 lb 配置。
我该怎么做?
spring - SpringCloudLoadbalancer 路由基于来自 DiscoveryClient 的元数据
我有一个微服务实例和一个springcloud网关实例,我正在尝试基于来自discoveryclient的实例元数据实现加权路由。
例如,如果元数据正在测试:A,则仅将 10% 的事务路由到该实例,将 90% 的事务路由到其余实例。
你能举个例子吗?我试图用 ServiceInstanceSupplierList 来实现这个
您能否帮助我在 Spring Cloud 负载均衡器中使用 ServiceInstanceListSupplier 和 WebClient 并在 Spring Cloud 网关路由中使用它。
spring-boot - 如何在spring集成中进行客户端负载平衡
我们可以通过以下方式在 Spring Boot 应用程序中添加客户端负载均衡,
这也将处理微服务解析。IE。通过 URL 识别服务,例如“http://service_name/api/v1/endpoint/”。
Spring集成中是否有类似的名称解析机制?
spring - com.netflix.client.ClientException:负载平衡器没有可用于客户端的服务器:邮件服务
我想使用 Spring Cloud Feign 客户端实现请求。我试过这个:
假装客户端:
请求 DTO:
控制器:
假装配置:
POM.xml
但是当我发出 POST 请求时,我得到了异常:
你知道我该如何解决这个问题吗?
测试问题的源代码:https ://github.com/rcbandit111/eureka-discovery-poc/tree/master
spring-cloud-loadbalancer - Spring Cloud Load Balancer 多种配置
我正在尝试使用 Spring Cloud Load Balancer 创建一个简单的客户端负载均衡器。我想将其配置为返回由运行状况检查支持的相同实例。但是,我无法为负载均衡器指定多个配置。在没有运行状况检查的情况下使用相同的实例是没有意义的,因为“previouslyReturnedInstance”不会被丢弃,除非它从服务实例列表中删除。请注意,这是使用 Simple Discovery 客户端,因为我们不需要完整的服务发现。下面是一个用于测试的示例 application.yml 文件。
应用程序.yml
上面的配置工作正常。如何向负载均衡器添加另一个配置层以将其包装在“SameInstancePreferenceServiceInstanceListSupplier”中?
为每个服务添加自定义配置只是为了添加包装器似乎是一种矫枉过正。
spring-cloud-loadbalancer - Spring Cloud Load Balancer - 通过 Java 自定义负载均衡器客户端配置
通过使用“LoadBalancerClient”和“LoadBalancerClients”注释可以为负载均衡服务指定自定义配置,如下图所示。
我们如何通过 Java 指定相同的配置?我们有一个案例,服务可以动态增加,我们不想继续修改代码来添加它们。除了服务实例之外,它们的负载均衡器配置将保持相似。我们希望添加一个通用的自定义配置,然后可以根据服务名称返回供应商列表。
spring - 服务实例关闭时更新服务状态
我使用 Spring Cloud Feign 客户端实现了请求。我试过这个:
假装客户端:
假装配置:
请求 DTO:
控制器:
假装配置:
POM.xml
我启动了 3 个端点服务实例,它们以循环顺序从 Feign 客户端作为端点使用。到目前为止一切顺利,它按预期工作。但是,例如当我关闭第一个服务实例时,Feign 客户端不会收到此更改的通知,并继续向非活动服务发送请求。你知道当端点服务关闭并且不在活动服务列表中时如何通知消费者服务吗?我想我需要配置一些健康检查?
你知道我该如何解决这个问题吗?
测试问题的源代码:https ://github.com/rcbandit111/eureka-discovery-poc/tree/master
spring-webclient - @LoadBalanced 与 LoadBalancerExchangeFilterFunction
知道Spring Cloud Commons 文档中提到的与 WebClient 一起使用的@LoadBalanced和LoadBalancerExchangeFilterFunction之间有什么区别吗?
spring - 负载均衡器不包含服务的实例
我想将 Eureka 客户端与spring-cloud-starter-loadbalancer
. 但是当我添加配置时,我得到了错误。当我删除@LoadBalancerClient(name = "mail-service", configuration = LoadBalancerConfiguration.class)
和LoadBalancerConfiguration
类配置时,它工作正常。我试过这段代码:
应用程序.yml:
POM.xml 依赖项
当我只有一个目标服务时出现此错误。
我使用 Release Train 版本:2020.0.3
你知道可能是什么问题吗?