Cloud Native 11 min read

What’s New in Spring Cloud 2020.0.0? A Deep Dive into Major Changes and Migration Strategies

Spring Cloud 2020.0.0 introduces a new naming scheme, drops the Netflix OSS stack, refines core abstractions like spring‑cloud‑commons, pushes a reactive programming model, and adds stronger cloud‑native capabilities, while providing detailed migration guidance and component replacement options for developers.

Alibaba Cloud Native
Alibaba Cloud Native
Alibaba Cloud Native
What’s New in Spring Cloud 2020.0.0? A Deep Dive into Major Changes and Migration Strategies

Version Naming and Release Train

Prior to the 2020.0.0 release Spring Cloud used alphabetic London‑tube names (Hoxton, Greenwich, Ilford, …). The new 2020.0.x scheme aligns with Spring Boot 2.4, simplifies version tracking and removes the limitation of a 26‑letter alphabet.

Support Policy

Spring Cloud follows the Pivotal OSS support policy: major releases receive three years of support, and after a minor release critical bugs are fixed for an additional 6‑12 months.

Core Change 1: Removal of Netflix OSS

The spring-cloud-netflix module is now limited to Eureka (server and client). All other Netflix components (Hystrix, Ribbon, Zuul, Archaius, etc.) have been removed.

Older spring-cloud-netflix-dependencies managed the full Netflix stack.

Since 2020.0 the dependency only includes Eureka.

Core Change 2: Refined spring‑cloud‑commons

The spring-cloud-commons module provides core abstractions for service registration, discovery, load balancing, circuit breaking and context management. Its sub‑packages are:

spring-cloud-commons
  ├── actuator
  ├── circuitbreaker
  ├── discovery
  ├── hypermedia
  ├── loadbalancer
  └── serviceregistry

Core Change 3: Reactive Stack Promotion

Reactor is now the default foundation for Spring Cloud Gateway and Spring Cloud LoadBalancer, encouraging a non‑blocking, event‑driven programming model.

Core Change 4: Cloud‑Native Enhancements

Built on Spring Boot 2.4, Spring Cloud 2020 adds improved configuration handling (e.g., direct support for Kubernetes ConfigMap), Docker image layering, and the spring-cloud-kubernetes starter as a replacement for Netflix components.

Service Discovery – spring-cloud-starter-kubernetes-client-all Load Balancer – spring-cloud-starter-kubernetes-client-loadbalancer Config Center –

spring-cloud-starter-kubernetes-client-config

Component Replacement Guide

Hystrix → Sentinel or Resilience4j

Hystrix Dashboard / Turbine → Micrometer + monitoring system

Ribbon → Spring Cloud LoadBalancer

Zuul 1 → Spring Cloud Gateway

Archaius 1 → Spring Boot externalized config, Spring Cloud Config, Nacos

Migration Steps for Spring Cloud Alibaba

Exclude Ribbon auto‑configuration:

@EnableAutoConfiguration(excludeName = "org.springframework.cloud.netflix.ribbon.RibbonAutoConfiguration")

Add Spring Cloud LoadBalancer dependency:

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

Enable bootstrap for configuration center (2020 disables it by default):

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

Using Circuit Breaker Abstractions

The spring-cloud-circuit-breaker module abstracts over Sentinel and Resilience4j, allowing a switch of implementations without code changes. Example:

public static class DemoControllerService {
    private RestTemplate rest;
    private CircuitBreakerFactory cbFactory;
    public String slow() {
        return cbFactory.create("slow")
                .run(() -> rest.getForObject("/slow", String.class),
                     throwable -> "fallback");
    }
}

Developer Guidance

Focus on the spring-cloud-commons abstractions; the removal of Netflix OSS does not affect most applications that rely on higher‑level APIs. When needed, debug specific implementations (e.g., NacosDiscoveryClient) to understand underlying behavior.

Conclusion

Spring Cloud 2020.0.0 is a major release that drops the Netflix OSS stack, embraces a reactive programming model, and adds stronger cloud‑native capabilities. Adopt the new load‑balancer and circuit‑breaker abstractions and follow the migration steps for a smooth transition.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

Cloud NativeSpring CloudLoad Balancercircuit breaker2020.0.0Netflix OSS removal
Alibaba Cloud Native
Written by

Alibaba Cloud Native

We publish cloud-native tech news, curate in-depth content, host regular events and live streams, and share Alibaba product and user case studies. Join us to explore and share the cloud-native insights you need.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.