3

升级 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。

谁能给我一些关于如何使其工作或如何复制功能区行为的指示?

4

1 回答 1

0

在您的配置中添加以下 RestTemplate Bean。

@Bean
public RestTemplate restTemplate() {
    return new RestTemplate();
}
于 2021-08-09T21:34:56.957 回答