Spring Cloud Greenwich.RC1 available now
On behalf of the community, I am pleased to announce that the Release Candidate 1 (RC1) of the Spring Cloud Greenwich Release Train is available today. The release can be found in Spring Milestone repository. You can check out the Greenwich release notes for more information.
End of Life (EOL) Reminder
The Dalston release train will reach EOL status at the end of 2018.
Notable Changes in the Greenwich Release Train
This milestone is compatible with Spring Boot 2.1.1.RELEASE. Updates were made across the projects for Java 11 compatibility.
Go to the Greenwich.RC1 github project to see all issues assigned to this release.
Spring Cloud Netflix Projects Entering Maintenance Mode
Recently, Netflix announced that Hystrix is entering maintenance mode. Ribbon has been in a similar state since 2016. Although Hystrix and Ribbon are now in maintenance mode, they are still deployed at scale at Netflix.
The Hystrix Dashboard and Turbine have been superseded by Atlas. The last commits to these project are 2 years and 4 years ago respectively. Zuul 1 and Archaius 1 have both been superseded by later versions that are not backward compatible.
The following Spring Cloud Netflix modules and corresponding starters will be placed into maintenance mode:
- spring-cloud-netflix-archaius
- spring-cloud-netflix-hystrix-contract
- spring-cloud-netflix-hystrix-dashboard
- spring-cloud-netflix-hystrix-stream
- spring-cloud-netflix-hystrix
- spring-cloud-netflix-ribbon
- spring-cloud-netflix-turbine-stream
- spring-cloud-netflix-turbine
- spring-cloud-netflix-zuul
This does not include the Eureka or concurrency-limits modules.
What is Maintenance Mode?
Placing a module in maintenance mode means that the Spring Cloud team will no longer be adding new features to the module. We will fix blocker bugs and security issues, and we will also consider and review small pull requests from the community.
We intend to continue to support these modules for a period of at least a year from the general availability of the Greenwich release train.
Replacements
We recommend the following as replacements for the functionality provided by these modules.
Current | Replacement |
---|---|
Hystrix | Resilience4j |
Hystrix Dashboard / Turbine | Micrometer + Monitoring System |
Ribbon | Spring Cloud Loadbalancer |
Zuul 1 | Spring Cloud Gateway |
Archaius 1 | Spring Boot external config + Spring Cloud Config |
Look for a future blog post on Spring Cloud Loadbalancer and integration with a new Netflix project Concurrency Limits.
Spring Cloud Kubernetes
Enhancements were made to use the KubernetesDiscoveryClient
during bootstrap as well as many documentation updates.
Spring Cloud Commons
A change was made to how BootstrapConfiguration classes are loaded to accomodate behavior in Java 11.
Spring Cloud Contract
Bug fixes.
Spring Cloud Openfeign
Support was added for @QueryMap
annotation.
Spring Cloud Zookeeper
Support was added for the new ServiceInstance.instanceId
field.
Spring Cloud Stream
See Fishtown.RC2 blog post.
Spring Cloud Sleuth
Support for instrumenting gRPC.
Spring Cloud Bus
Fixed a critical bug that prevented Bus from functioning properly with latest version of Spring Cloud Stream.
Spring Cloud GCP
Documentation updates and bug fixes.
Spring Cloud Function
Support for Kotlin lambdas and other enhancements and bug fixes.
Spring Cloud Consul
Support was added for the new ServiceInstance.instanceId
field and bug fixes.
Spring Cloud Config
Fixes for webhooks and Spring Cloud Bus.
Spring Cloud Gateway
Support was added for multiple paths and hosts in their respective route predicates and to customize the HTTP status code returned in certain situations, as well as bug fixes.
Spring Cloud Module Versions
The following modules were updated as part of Greenwich.RC1:
Module | Version | Issues |
---|---|---|
Spring Cloud Kubernetes | 1.0.0.RC1 | (issues) |
Spring Cloud Commons | 2.1.0.RC2 | (issues) |
Spring Cloud Contract | 2.1.0.RC2 | (issues) |
Spring Cloud Openfeign | 2.1.0.RC2 | (issues) |
Spring Cloud Zookeeper | 2.1.0.RC2 | (issues) |
Spring Cloud Stream | Fishtown.RC2 | (blog) |
Spring Cloud Sleuth | 2.1.0.RC2 | (issues) |
Spring Cloud Bus | 2.1.0.RC2 | (issues) |
Spring Cloud Netflix | 2.1.0.RC2 | (issues) |
Spring Cloud Gcp | 1.1.0.RC1 | (issues) |
Spring Cloud Cloudfoundry | 2.1.0.RC2 | |
Spring Cloud Function | 2.0.0.RC2 | (issues) |
Spring Cloud Task | 2.1.0.M1 | (issues) |
Spring Cloud Consul | 2.1.0.RC2 | (issues) |
Spring Cloud Config | 2.1.0.RC2 | (issues) |
Spring Cloud Gateway | 2.1.0.RC2 | (issues) |
As always, we welcome feedback on GitHub, Gitter, Stack Overflow, or Twitter.
To get started with Maven with a BOM (dependency management only):
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>http://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Greenwich.RC1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
...
</dependencies>
or with Gradle:
buildscript {
dependencies {
classpath "io.spring.gradle:dependency-management-plugin:1.0.6.RELEASE"
}
}
repositories {
maven {
url 'http://repo.spring.io/milestone'
}
}
apply plugin: "io.spring.dependency-management"
dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Greenwich.RC1'
}
}
dependencies {
compile 'org.springframework.cloud:spring-cloud-starter-config'
compile 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
...
}