Get ahead
VMware offers training and certification to turbo-charge your progress.
Learn moreOn 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.
The Dalston release train will reach EOL status at the end of 2018.
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.
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:
This does not include the Eureka or concurrency-limits modules.
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.
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.
Enhancements were made to use the KubernetesDiscoveryClient
during bootstrap as well as many documentation updates.
A change was made to how BootstrapConfiguration classes are loaded to accomodate behavior in Java 11.
Bug fixes.
Support was added for @QueryMap
annotation.
Support was added for the new ServiceInstance.instanceId
field.
See Fishtown.RC2 blog post.
Support for instrumenting gRPC.
Fixed a critical bug that prevented Bus from functioning properly with latest version of Spring Cloud Stream.
Documentation updates and bug fixes.
Support for Kotlin lambdas and other enhancements and bug fixes.
Support was added for the new ServiceInstance.instanceId
field and bug fixes.
Fixes for webhooks and Spring Cloud Bus.
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.
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'
...
}