Spring Cloud Brixton Release Notes

Dave Syer edited this page Dec 16, 2016 · 8 revisions

Spring Cloud Brixton builds on Spring Boot 1.3.x. It adds the following new projects:

Spring Cloud Zookeeper

Service discovery and configuration management with Apache Zookeeper.

Spring Cloud Cloudfoundry

Integrates your application with Pivotal Cloudfoundry. Provides a service discovery implementation and also makes it easy to implement SSO and OAuth2 protected resources, and also to create a Cloudfoundry service broker.

Spring Cloud Cluster

Leadership election and common stateful patterns with an abstraction and implementation for Zookeeper, Redis, Hazelcast, Consul. (Now deprecated and superseded by Spring Integration.)

Spring Cloud Consul

Service discovery and configuration management with Hashicorp Consul.

Spring Cloud Sleuth

Distributed tracing for Spring Cloud applications, compatible with Zipkin, HTrace and log-based (e.g. ELK) tracing.

Spring Cloud Stream

Messaging microservices with Redis, Rabbit or Kafka. Simple declarative model to send and receive messages in a Spring Cloud app.

Spring Cloud Task

Short lived microservices. Simple declarative for adding both functional and non-functional features to Spring Boot apps.

Spring Cloud Zookeeper

Service discovery and configuration management with Apache Zookeeper.

Spring Cloud Brixton builds with Spring Boot 1.3.x but it should work with 1.4.x as well (we do compatibility tests and hope to be able to fix any issues that crop up).

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

Notes:

Starting with Brixton, Zuul will no longer automatically send all headers to downstream services. By default Cookie, Set-Cookie and Authorization are not sent to downstream services. To return to the Angel behaviour, set zuul.sensitiveHeaders="" in the Zuul configuration. See the documentation for more information.

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 might be removed in future versions, so please use spring-cloud-netflix-hystrix-stream and the binder of your choice instead.

Brixton.SR6

  • 2016/09/21 - AWS version 1.1.3.RELEASE

  • 2016/09/21 - Commons version 1.1.3.RELEASE (issues)

  • 2016/09/21 - Cloudfoundry version 1.0.1.RELEASE

  • 2016/09/08 - Netflix version 1.1.6.RELEASE (issues)

  • 2016/09/06 - Security version 1.1.3.RELEASE (issues)

  • 2016/09/21 - Sleuth version 1.0.0.RELEASE (issues)

  • 2016/09/21 - Zookeeper version 1.0.3.RELEASE (issues)

Brixton.SR7

  • 2016/11/23 - Netflix version 1.1.7.RELEASE (issues)

  • 2016/11/24 - Sleuth version 1.0.11.RELEASE (issues)

  • 2016/11/23 - Config version 1.1.3.RELEASE (issues)

Note: There was an XXE vulnerability in xstream (which is used by Eureka), so please upgrade to Brixton.SR7 to pull in the latest version of that library which fixed the issue (https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3674).