升级 Spring Cloud 版本后,我正在努力从 Ribbon 切换到 Spring Cloud Loadbalancer。使用 Feign 设置 SimpleDiscoveryClient 很容易。但是 simplediscovery 客户端“太简单了”。我想至少添加一个运行状况检查,这样它就不会使用可能已关闭的实例,最好也是重试机制。我已经一遍又一遍地阅读了文档,但找不到一种简单的方法来设置它。
https://docs.spring.io/spring-cloud-commons/docs/current/reference/html/#instance-health-check-for-loadbalancer 我找到了这个用于健康检查的示例自定义配置,但它没有工作。
public class CustomLoadBalancerConfiguration {
@Bean
public ServiceInstanceListSupplier discoveryClientServiceInstanceListSupplier(
ConfigurableApplicationContext context) {
return ServiceInstanceListSupplier.builder()
.withDiscoveryClient()
.withHealthChecks()
.build(context);
}
}
如果我按原样运行它,它会引发以下缺少的 bean 错误: XXX.CustomLoadBalancerConfig 中的方法 discoveryClientServiceInstanceListSupplier 需要找不到类型为“org.springframework.web.client.RestTemplate”的 bean。
谁能给我一些关于如何使其工作或如何复制功能区行为的指示?