J.P*_*Pip 6 spring spring-cloud spring-webflux spring-webclient
我们正在一步一步地脱离 spring-cloud Netflix OSS 生态系统。目前我们正在实现 spring-cloud-loadbalancer 并删除 Ribbon。然而,我们过去在集成测试中有很多静态服务,现在随着从功能区转向 spring-cloud-loadbalancer,这些属性不再被选取。IE:
foo-service.ribbon.NIWSServerListClassName=com.netflix.loadbalancer.ConfigurationBasedServerList
foo-service.ribbon.listOfServers=localhost:9876
Run Code Online (Sandbox Code Playgroud)
我们已通过以下方式迁移到使用 spring-cloud-loadbalancer
首先,我们使用 @LoadBalanced 注释我们的 Webclient.Builder,如下所示
@Bean
@LoadBalanced
fun webClientBuilder() = WebClient.builder()
Run Code Online (Sandbox Code Playgroud)
然后我们在客户端类上添加 @LoadBalancerClient 注释,如下所示
@LoadBalancerClient(name = "foo-service", configuration = [FooServiceConfiguration::class])
class FooServiceClient(private val basicAuthWebClient: WebClient)
Run Code Online (Sandbox Code Playgroud)
这会导致我们的测试失败,并出现 foo-service 的 UnknownHostException。
现在我的问题是我们如何在新的 spring-cloud-loadbalancer 中配置这个静态服务器列表?
小智 4
根据 @spencergibb 的评论,我想这样的事情应该有效:
spring:
cloud:
discovery:
client:
simple:
instances:
foo-service:
- instanceId: foo1
serviceId: foo-service
host: localhost
port: 9876```
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2146 次 |
| 最近记录: |