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.
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
└── serviceregistryCore 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-configComponent 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.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
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.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
