SpringCloud 2020

SpringCloud 2020:

SpringCloud 2020版本问题 :
在spring-cloud-starter-netflix-eureka-client3.0.0 版本及以上遇到使用ribbon无法获取到服务中心的数据

问题描述:

发现在使用spring-cloud-starter-netflix-eureka-client3.0.0以下版本,例如2.2.9.RELEASE中管理着Netflix所有组件,包括Hystrix、Ribbon、Zuul、Eureka等。而自2020.0版本起,它有且只管理Eureka(包括Server和Client)
在这里插入图片描述
在这里插入图片描述
但是如果使用最新版本的Spring Cloud又想要用Netflix,手动添加低版本的ribbon可以吗
答案是不行的,实测添加了spring-cloud-netflix-ribbon:2.2.9.RELEASE依赖之后,也无法获取到服务中心的数据。可能是不能向下兼容吧,具体原因还没了解。

Netflix组件替代方案

Spring Cloud团队将Netflix OSS套件去掉之后,给我们推荐了用于替代的产品:

Netflix推荐替代品
HystrixResilience4j
Hystrix Dashboard / TurbineMicrometer + Monitoring System
RibbonSpring Cloud Loadbalancer
Zuul 1Spring Cloud Gateway
Archaius 1Spring Boot外部化配置 + Spring Cloud配置

参考于Spring Cloud 2020.0.0,再见Netflix

在Spring Cloud 2020 中,有轮询、随机两种负载均衡策略,默认轮询策略。
要是想使用随机策略,可以通过 @LoadBalancerClient 注解,指定负载均衡策略

@Configuration
@LoadBalancerClient(value = "server-provider", configuration = RandomLoadbalancerConfig.class)
public class RandomLoadbalancerConfig {

    @Bean
    public ReactorLoadBalancer<ServiceInstance> reactorServiceInstanceLoadBalancer(Environment environment,
                                                                                   LoadBalancerClientFactory loadBalancerClientFactory) {
        String name = environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);
        return new RandomLoadBalancer(
                loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class), name);
    }

}

参考于 SpringCloud LoadBalancer灰度策略实现


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值