Commit Graph

241 Commits

Author SHA1 Message Date
Olga Maciaszek-Sharma
331b523513 Handle null serviceId. (#1034) 2021-10-28 19:43:27 +02:00
Olga MaciaszekSharma
7cb8c34978 Refactor. 2021-10-28 19:39:55 +02:00
Olga MaciaszekSharma
e3fc8bd782 Refactor tets. 2021-10-28 19:05:31 +02:00
gandhiUH
a59b3f6031 added X-forward-Host and X-Forward-Proto
Updated LoadBalancerProperties and AutoConfiguration

LoadBalancerXtranformerTests added

PR Changes Implemented

Changes Implemented as per PR comments

Updated XForwadedHeadersTransformer name, test classes as per PR Commit on Oct,25, 2021

Addressed PR comments to modify tests with better Assertions

Changed the enabledXforwarded property name to just enabled in Xforwarded class as per PR comments
2021-10-28 19:05:17 +02:00
Spencer Gibb
3a6a9e0a91 Adds config per load balancer client. (#1028)
Client specific configuration goes under `spring.cloud.loadbalancer.clients.<serviceId>.*`. Defaults are set using `spring.cloud.loadbalancer.*`. 

Adds LoadBalancerDefaultMappingsProviderAutoConfiguration to supply the loadbalancer defaults mapping to DefaultsBindHandlerAdvisor

LoadBalancerClientsProperties now extends LoadBalancerProperties. The `clients` attribute is now a field. The `@ConfigurationProperties("spring.cloud.loadbalancer")` has moved from LoadBalancerProperties to LoadBalancerClientsProperties

Fixes gh-914
2021-10-26 16:03:00 -04:00
Tim te Beek
95ce58741d Increase JUnit5 usage (#1020) 2021-10-20 15:42:11 +02:00
Robert McNees
03fd58cd53 Skip health check if null or empty (#1011)
Fixes gh-1005
2021-09-16 14:06:48 -04:00
Olga MaciaszekSharma
bc42390206 Refactor and add javadocs. 2021-07-28 11:50:48 +02:00
sabyasachi
de32d2b68c Issue-906 Adding support for query param in lb health-check
This PR is to fix issue https://github.com/spring-cloud/spring-cloud-commons/issues/906
where loadbalancer healthcheck has query param and
character "?" was automatically
converted to a URI encoding %3F, causing the request to fail.

What has changed
* Using `UriComponentsBuilder.fromUriString` this method parses the string and handles url
  and query param path.
2021-07-28 11:42:43 +02:00
Olga MaciaszekSharma
bd8d640c42 Reformat with updated plugin. 2021-07-27 15:20:31 +02:00
Olga MaciaszekSharma
c009fd159d Merge remote-tracking branch 'origin/3.0.x' 2021-07-27 15:15:38 +02:00
Olga MaciaszekSharma
6929b5058a Remove spring-boot-starter-validation from LoadBalancer dependencies. Fixes gh-992. 2021-07-27 15:13:27 +02:00
Zhiguo.Chen
9feb443009 Add with() method to support external ServiceInstanceListSupplier(#988) (#989) 2021-07-27 12:39:27 +02:00
Olga MaciaszekSharma
bae3ddd4ea Handle errror logging not enabled. 2021-07-12 20:02:18 +02:00
Olga MaciaszekSharma
4933259c17 Merge remote-tracking branch 'origin/2.2.x' 2021-07-05 16:24:10 +02:00
rodbate
84fb8550c7 Fix blocking discovery client. 2021-07-05 16:19:06 +02:00
Jisfeng
7d6b9857b1 rewrite annotation on ReactiveRetryConfiguration (#965) 2021-06-14 11:48:18 +02:00
Olga MaciaszekSharma
9d6e5e18d5 Remove stale property from additional-spring-configuration-metadata.json 2021-04-27 15:21:13 +02:00
Olga Maciaszek-Sharma
ac7e8f922b Allow disabling load-balancing with property. (#940) 2021-04-01 16:42:34 +02:00
Olga Maciaszek-Sharma
517368e7ac Pass request to supplier delegate calls (#932) 2021-03-23 19:59:05 +01:00
Olga MaciaszekSharma
5c0bc097fa Merge remote-tracking branch 'origin/2.2.x'
# Conflicts:
#	docs/src/main/asciidoc/spring-cloud-commons.adoc
#	spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerAutoConfiguration.java
#	spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/ExchangeFilterFunctionUtils.java
#	spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/ReactorLoadBalancerClientAutoConfiguration.java
#	spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/ReactorLoadBalancerExchangeFilterFunction.java
#	spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/RetryableLoadBalancerExchangeFilterFunction.java
#	spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/RetryableLoadBalancerExchangeFilterFunctionIntegrationTests.java
#	spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/BlockingLoadBalancerClientAutoConfiguration.java
2021-03-12 14:49:19 +01:00
Olga MaciaszekSharma
61560ef760 Fix flaky test. 2021-03-12 13:24:21 +01:00
Olga Maciaszek-Sharma
272365490a Add hint-based instance filtering (#923) 2021-03-12 12:55:44 +01:00
Olga Maciaszek-Sharma
6b6f6dbbd5 Move LoadBalancerServiceInstanceCookieTransformer to loadbalancer module. (#920) 2021-03-11 16:28:21 +01:00
spencergibb
2b2903c91d Makes junit:junit optional.
This means modules using spring-cloud-test-support must have the
junit-vintage-engine dependency so tests will run properly.
2021-03-09 14:45:32 -05:00
spencergibb
458ba95507 Fixes spring.cloud.oauth2.load-balanced.enabled condition.
Fixes gh-921
2021-03-09 14:44:38 -05:00
spencergibb
2cbf197050 Updates test to jupiter 2021-03-09 12:56:39 -05:00
Olga Maciaszek-Sharma
d583addb37 Add service instance cookie mechanism for blocking load-balanced requests. (#918) 2021-03-09 10:14:30 +01:00
Olga Maciaszek-Sharma
8bffa27e9a Instantiate one LoadBalancedRetryFactory bean. (#917) 2021-03-05 16:22:10 +01:00
spencergibb
3c818f8cf3 Merge branch '2.2.x' 2021-03-03 16:23:18 -05:00
Tim Ysewyn
894b7d25c9 Log exceptions as errors 2021-03-03 22:17:58 +01:00
Olga Maciaszek-Sharma
36d5350661 Merge remote-tracking branch 'origin/2.2.x'
# Conflicts:
#	spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/HealthCheckServiceInstanceListSupplier.java
2021-02-17 15:44:21 +01:00
Роман Чигвинцев
95a22796eb Fix bug of service instance refetching when repeating health check is activated (#904)
Fixes gh-899

(cherry picked from commit 3d257b43003a02b64c4f7fd97680e7981d0b52f4)
2021-02-17 15:35:39 +01:00
johnny850807
361a8c2bae Add getSupportedLifecycleProcessors method in BlockingLoadBalancerClient
# Conflicts:
#	spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/blocking/client/BlockingLoadBalancerClient.java
2021-02-10 11:30:13 +01:00
Olga Maciaszek-Sharma
005f6d5487 Merge remote-tracking branch 'origin/2.2.x'
# Conflicts:
#	spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/LoadBalancerCacheAutoConfiguration.java
2021-01-26 17:44:13 +01:00
Olga Maciaszek-Sharma
5839758365 Add CaffeineCacheManager class conditions to LoadBalancerCacheAutoConfiguration. (#891) 2021-01-26 17:37:44 +01:00
Olga Maciaszek-Sharma
a5903d03e0 Merge remote-tracking branch 'origin/2.2.x'
# Conflicts:
#	spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/cache/DefaultLoadBalancerCacheManager.java
2021-01-26 17:34:39 +01:00
Olga Maciaszek-Sharma
3493612ab4 Use daemon threads with DefaultLoadBalancerCacheManager. (#890) 2021-01-26 17:29:54 +01:00
Olga Maciaszek-Sharma
c6bfc2d827 Merge remote-tracking branch 'origin/master' 2020-12-18 17:58:35 +01:00
Olga Maciaszek-Sharma
8125db910a Add missing LB properties to configuration-metadata. 2020-12-18 17:58:20 +01:00
Olga Maciaszek-Sharma
a40258394a Lb micrometer stats (#871)
* Add stats lifecycle bean. Add onStartRequest method to LoadBalancerLifecycle. Add loadbalancer.Request field to CompletionContext.

* Add TimedRequestContext interface. Make RetryableRequestContext extend RequestDataContext. Improve generating metrics. Add utility class for working with tags. Ensure tags are not null.

* Add separate meters depending on CompletionContext.Status.

* Modify registered metrics. Add adapter for BlockingLoadBalancerClient requests. Add autoconfiguration.

* Make new config conditional on MeterRegistry class.

* Rename lifecycle bean. Do not log request if 0 timestamp.

* Fix onStartRequest call arguments for BlockingLoadBalancerClient.

* Fix onStartRequest and onComplete calls for RetryLoadBalancerInterceptor.

* Only register timed request once. Add tests.

* Adjust tags logic. Add more tests.

* Add more tests.

* Refactor. Add javadocs.

* Refactor.

* Refactor.

* Retrieve client response data if possible in BlockingLoadBalancerClient.

* Refactor.

* Fix docs after review.

* Make previousServiceInstanceMutable.

* Change argument order for CompletionContext constructors. Remove duplicated start time setting.
2020-12-18 17:46:53 +01:00
Marcin Grzejszczak
1f0f750707 Moves classes from spring-cloud-security to spring-cloud-commons 2020-12-18 17:21:10 +01:00
Olga Maciaszek-Sharma
188fab7b32 Fix after merge. 2020-12-11 17:41:29 +01:00
Olga Maciaszek-Sharma
c04e4a2aed Merge remote-tracking branch 'origin/2.2.x' 2020-12-11 17:34:41 +01:00
Olga Maciaszek-Sharma
65201f8f61 Add RandomLoadBalancer, along with tests and docs. (#868)
# Conflicts:
#	spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/RoundRobinLoadBalancer.java
2020-12-11 17:33:42 +01:00
Olga Maciaszek-Sharma
ddd370c57d Add function-based health check. Add restTemplate-based health-check beans to default config (#866)
* Switch to a function-based HealthCheckServiceInstanceListSupplier.

* Handle exception for restTemplate based function. Add default blocking health-check configuration.

* Add docs.
2020-12-11 17:20:57 +01:00
Olga Maciaszek-Sharma
c6bd75eb5d Move LoadBalancerProperties to the parent package. 2020-12-10 16:43:30 +01:00
Olga Maciaszek-Sharma
8969d5d1e1 Remove deprecations. 2020-12-10 12:31:45 +01:00
Olga Maciaszek-Sharma
dce413ae66 Do not pass response body to LB lifecycle beans. (#864)
* Do not pass response body to LB lifecycle beans.

* Fix argument name.
2020-12-09 13:37:58 +01:00
Olga Maciaszek-Sharma
0f98419c47 Request based sticky session (#860)
* Implement first draft for sticky-session load-balancing.

* Make setting instance cookie opt-in.

* Add tests.

* Make adding request cookie opt-in.

* Add docs and javadocs.

* Add default configuration with blocking discovery client.

* Fix docs after review.
2020-12-07 13:08:06 +01:00