From 2f233f384abd7b36b52cb397b6e1f752cd6c579b Mon Sep 17 00:00:00 2001 From: Olga Maciaszek-Sharma Date: Fri, 6 Sep 2019 18:43:34 +0200 Subject: [PATCH 1/2] 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 From 9ec14f6fbddb5af192f3799c5efb0572b9a1879b Mon Sep 17 00:00:00 2001 From: Olga Maciaszek-Sharma Date: Mon, 9 Sep 2019 18:02:05 +0200 Subject: [PATCH 2/2] Update docs. --- README.adoc | 1 + docs/src/main/asciidoc/spring-cloud-consul.adoc | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index bad741e6..3a940e08 100644 --- a/README.adoc +++ b/README.adoc @@ -33,6 +33,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/spring-cloud-consul.adoc b/docs/src/main/asciidoc/spring-cloud-consul.adoc index 8ece9977..7ec43bba 100644 --- a/docs/src/main/asciidoc/spring-cloud-consul.adoc +++ b/docs/src/main/asciidoc/spring-cloud-consul.adoc @@ -262,8 +262,8 @@ 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`. +As Spring Cloud Ribbon is now under maintenance, we suggest you set `spring.cloud.loadbalancer.ribbon.enabled` +to `false`, so that `BlockingLoadBalancerClient` is used instead of `RibbonLoadBalancerClient`. ==== Using the DiscoveryClient