From 2f233f384abd7b36b52cb397b6e1f752cd6c579b Mon Sep 17 00:00:00 2001 From: Olga Maciaszek-Sharma Date: Fri, 6 Sep 2019 18:43:34 +0200 Subject: [PATCH] Add `spring-cloud-starter-loadbalancer`. --- docs/src/main/asciidoc/README.adoc | 1 + docs/src/main/asciidoc/sagan-index.adoc | 1 + docs/src/main/asciidoc/spring-cloud-consul.adoc | 9 ++++++++- spring-cloud-starter-consul-discovery/pom.xml | 4 ++++ 4 files changed, 14 insertions(+), 1 deletion(-) diff --git a/docs/src/main/asciidoc/README.adoc b/docs/src/main/asciidoc/README.adoc index 52bec01c..f0d0c4a2 100644 --- a/docs/src/main/asciidoc/README.adoc +++ b/docs/src/main/asciidoc/README.adoc @@ -20,6 +20,7 @@ See the https://consul.io/intro/index.html[intro] for more information. * Spring Cloud `DiscoveryClient` implementation ** supports Ribbon and Zuul +** supports Spring Cloud LoadBalancer * Consul based `PropertySource` loaded during the 'bootstrap' phase. * Spring Cloud Bus implementation based on Consul https://www.consul.io/docs/agent/http/event.html[events] diff --git a/docs/src/main/asciidoc/sagan-index.adoc b/docs/src/main/asciidoc/sagan-index.adoc index 456c86a1..629c255e 100644 --- a/docs/src/main/asciidoc/sagan-index.adoc +++ b/docs/src/main/asciidoc/sagan-index.adoc @@ -6,6 +6,7 @@ Spring Cloud Consul features: * Service Discovery: instances can be registered with the Consul agent and clients can discover the instances using Spring-managed beans * Supports Ribbon, the client side load-balancer via Spring Cloud Netflix + * Supports Spring Cloud LoadBalancer - a client side load-balancer provided by the Spring Cloud project * Supports Zuul, a dynamic router and filter via Spring Cloud Netflix * Distributed Configuration: using the Consul Key/Value store * Control Bus: Distributed control events using Consul Events diff --git a/docs/src/main/asciidoc/spring-cloud-consul.adoc b/docs/src/main/asciidoc/spring-cloud-consul.adoc index 02c845cc..8ece9977 100644 --- a/docs/src/main/asciidoc/spring-cloud-consul.adoc +++ b/docs/src/main/asciidoc/spring-cloud-consul.adoc @@ -229,7 +229,7 @@ spring: === Looking up services -==== Using Ribbon +==== Using Load-balancer Spring Cloud has support for https://github.com/spring-cloud/spring-cloud-netflix/blob/master/docs/src/main/asciidoc/spring-cloud-netflix.adoc#spring-cloud-feign[Feign] (a REST client builder) and also https://github.com/spring-cloud/spring-cloud-netflix/blob/master/docs/src/main/asciidoc/spring-cloud-netflix.adoc#spring-cloud-ribbon[Spring `RestTemplate`] for looking up services using the logical service names/ids instead of physical URLs. Both Feign and the discovery-aware RestTemplate utilize https://cloud.spring.io/spring-cloud-netflix/single/spring-cloud-netflix.html#spring-cloud-ribbon[Ribbon] for client-side load balancing. @@ -259,6 +259,13 @@ If you have Consul clusters in multiple datacenters and you want to access a ser you use property `spring.cloud.consul.discovery.datacenters.STORES=dc-west` where `STORES` is the service name/id and `dc-west` is the datacenter where the STORES service lives. +TIP: Spring Cloud now also offers support for +https://cloud.spring.io/spring-cloud-commons/reference/html/#_spring_resttemplate_as_a_load_balancer_client[Spring Cloud LoadBalancer]. + +As Spring Cloud Ribbon is now under maintenance, we suggest you set `spring.cloud.loadbalancer.default` +to `true`, so that `BlockingLoadBalancerClient` is used instead of `RibbonLoadBalancerClient`. + + ==== Using the DiscoveryClient You can also use the `org.springframework.cloud.client.discovery.DiscoveryClient` which provides a simple API for discovery clients that is not specific to Netflix, e.g. diff --git a/spring-cloud-starter-consul-discovery/pom.xml b/spring-cloud-starter-consul-discovery/pom.xml index 410c6af4..452bc98e 100644 --- a/spring-cloud-starter-consul-discovery/pom.xml +++ b/spring-cloud-starter-consul-discovery/pom.xml @@ -37,6 +37,10 @@ org.springframework.cloud spring-cloud-starter-netflix-ribbon + + org.springframework.cloud + spring-cloud-starter-loadbalancer + joda-time joda-time