Spring Cloud Brixton.RELEASE is available
On behalf of the team, I am pleased to announce that the Spring Cloud Brixton Release Train has reached General Availability. The release is available today and can be found in our Spring Release repository and Maven Central.
We would like to thank many community contributors and testers for their help. There have been many pull requests, issues and conversations that have made Spring Cloud Brixton better.
Highlights
Some of the highlights of the Brixton Release Train are:
- Spring Boot 1.3.x and Spring Framework 4.2.x support
- Hashicorp Consul support for service registration/discovery & configuration via Spring Cloud Consul
- Apache Zookeeper support for service registration/discovery, configuration via Spring Cloud Zookeeper and leader election in Spring Cloud Cluster
- Distributed tracing through the Spring Cloud Sleuth abstraction with two out of the box implementations: one supporting logging (ideal for log collectors and multiplexers like Logstash and Loggregator) and one supporting Twitter’s Zipkin
- Netflix Atlas Telemetry System, the next generation Spectator Metrics library and recent versions of Eureka, Ribbon, Hystrix and Feign are available in Spring Cloud Netflix
- Spring Cloud Bus is now powered by the recently released Spring Cloud Stream
- Cluster Leadership election and locks via Spring Cloud Cluster
- Export of Spring Boot metrics to Amazon Cloudwatch, and native support for Amazon RDS
The following modules are part of Brixton.RELEASE:
- Spring Cloud AWS 1.1.0.RELEASE
- Spring Cloud Bus 1.1.0.RELEASE
- Spring Cloud Cloud Foundry 1.0.0.RELEASE
- Spring Cloud Cluster 1.0.0.RELEASE
- Spring Cloud Commons 1.1.0.RELEASE
- Spring Cloud Config 1.1.0.RELEASE
- Spring Cloud Consul 1.0.0.RELEASE
- Spring Cloud Netflix 1.1.0.RELEASE
- Spring Cloud Security 1.1.0.RELEASE
- Spring Cloud Sleuth 1.0.0.RELEASE
- Spring Cloud Stream 1.0.0.RELEASE
- Spring Cloud Zookeeper 1.0.0.RELEASE
And, as always, we welcome feedback: either in GitHub, on Stack Overflow, or on Twitter.
Roadmap
The next Spring Cloud Release Train will be called Camden and will follow as soon as possible after Spring Boot 1.4.
Notes:
A @LoadBalanced
RestTemplate
is no longer created by default. See the updated documentation for details. You need to create it in your application’s configuration. For example:
@Configuration
public class MyConfiguration {
@LoadBalanced
@Bean
RestTemplate restTemplate() {
return new RestTemplate();
}
}
Please note the correct BOM to use is spring-cloud-dependencies
not spring-cloud-starter-parent
(see Getting Started below).
Migrating Spring Cloud Hystrix, Turbine and Bus with AMQP
The Bus, Hystrix and Turbine support that used to be implemented on top of Spring AMQP have all been migrated to use Spring Cloud Stream. The old artifacts still exist, but are deprecated and will be removed at some point. Instead of the spring-cloud-*-amqp
artifacts you should use whatever raw feature you need, plus a stream binder of your choice, e.g. spring-cloud-netflix-hystrix-stream
and spring-cloud-starter-stream-rabbit
instead of spring-cloud-netflix-hystrix-amqp
.
Angel | Brixton (with AMQP) | Brixton (with Kafka) |
---|---|---|
spring-cloud-starter-bus-amqp | spring-cloud-starter-bus-amqp | spring-cloud-starter-bus-kafka |
spring-cloud-netflix-hystrix-amqp | spring-cloud-netflix-hystrix-stream spring-cloud-starter-stream-rabbit | spring-cloud-netflix-hystrix-stream spring-cloud-starter-stream-kafka |
spring-cloud-starter-turbine-amqp | spring-cloud-starter-turbine-stream spring-cloud-starter-stream-rabbit | spring-cloud-starter-turbine-stream spring-cloud-starter-stream-kafka |
NOTE: There is still a
spring-cloud-netflix-hystrix-amqp
in the Brixton release, but it was (mistakenly) omitted from the BOM, so you will need to provide a version explicitly if you are upgrading and don’t want to change the artifacts.
Getting Started
The easiest way to get started with Brixton.RELEASE is to head to http://start.spring.io. If you want to write your build file by hand with Maven with a BOM (dependency management only):
<dependencyManagement>
<dependencies>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Brixton.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</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-eureka</artifactId>
</dependency>
...
</dependencies>
or with Gradle:
buildscript {
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.5.RELEASE")
}
}
repositories {
maven {
mavenCentral()
}
}
apply plugin: 'spring-boot'
dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-dependencies:Brixton.RELEASE'
}
}
dependencies {
compile 'org.springframework.cloud:spring-cloud-starter-config'
compile 'org.springframework.cloud:spring-cloud-starter-eureka'
//...
}
If you are attending the Spring I/O conference next week there will be various presentations on Spring Cloud from myself, Josh Long, Dave Syer and others.
This is also a reminder that Spring One Platform will be taking place in Las Vegas between August 1-4 this year, and you should consider getting your ticket if you haven’t done so already.