SpringCloud WebFlux WebClient,带有非反应式负载均衡器客户端

2023-06-08 11:10 更新

如果您的项目中没有​org.springframework.cloud:spring-cloud-loadbalancer​,但是确实有spring-cloud-starter-netflix-ribbon,则仍可以将​WebClient​与​LoadBalancerClient​结合使用。如果​spring-webflux​在类路径中,将自动配置​LoadBalancerExchangeFilterFunction​。但是请注意,这是在后台使用非反应性客户端。以下示例显示如何配置​WebClient​以使用负载均衡器:

public class MyClass {
    @Autowired
    private LoadBalancerExchangeFilterFunction lbFunction;

    public Mono<String> doOtherStuff() {
        return WebClient.builder().baseUrl("http://stores")
            .filter(lbFunction)
            .build()
            .get()
            .uri("/stores")
            .retrieve()
            .bodyToMono(String.class);
    }
}

URI需要使用虚拟主机名(即服务名,而不是主机名)。​LoadBalancerClient​用于创建完整的物理地址。

 警告

现在不建议使用此方法。我们建议您将WebFlux与电抗性负载平衡器一起使用。


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号