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
Olga Maciaszek-Sharma
c3223934f8
Merge remote-tracking branch 'origin/2.2.x'
2020-12-04 19:00:39 +01:00
Olga Maciaszek-Sharma
c1128e5065
Fix @since info.
2020-12-04 18:59:34 +01:00
Olga Maciaszek-Sharma
2a1a50848f
Merge remote-tracking branch 'origin/2.2.x'
...
# Conflicts:
# docs/src/main/asciidoc/spring-cloud-commons.adoc
# spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfiguration.java
# spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/RoundRobinLoadBalancer.java
# spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/LoadBalancerTests.java
2020-12-04 18:57:33 +01:00
Olga Maciaszek-Sharma
843cb79649
Support same service instance preference ( #862 )
...
* Draft initial implementation.
* Rename default configuration property. Check previously chosen instance for equality.
* Verify previous service instance for null. Add tests.
* Add docs.
* Add javadocs.
* Fix javadocs after review.
2020-12-04 18:18:10 +01:00
Olga Maciaszek-Sharma
c65dfbca6b
Merge remote-tracking branch 'origin/2.2.x'
...
# Conflicts:
# docs/src/main/asciidoc/_configprops.adoc
# spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/reactive/LoadBalancerProperties.java
# spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/core/HealthCheckServiceInstanceListSupplier.java
# spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/core/HealthCheckServiceInstanceListSupplierTests.java
2020-12-01 11:31:55 +01:00
Olga Maciaszek-Sharma
cbedae2e82
Allow refetching instances for healthcheck ( #855 )
...
* Allow refetching instances by HealthCheckServiceInstanceListSupplier.
* Add docs and javadocs.
* Fix docs after review.
2020-12-01 11:14:14 +01:00
Olga Maciaszek-Sharma
f5a5bef06f
Merge remote-tracking branch 'origin/2.2.x'
...
# Conflicts:
# docs/pom.xml
# pom.xml
# spring-cloud-commons-dependencies/pom.xml
# spring-cloud-commons/pom.xml
# spring-cloud-context-integration-tests/pom.xml
# spring-cloud-context-webflux-integration-tests/pom.xml
# spring-cloud-context/pom.xml
# spring-cloud-loadbalancer/pom.xml
# spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfiguration.java
# spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/annotation/LoadBalancerClientConfigurationTests.java
# spring-cloud-starter-loadbalancer/pom.xml
# spring-cloud-starter/pom.xml
# spring-cloud-test-support/pom.xml
2020-11-16 13:19:56 +01:00
Olga Maciaszek-Sharma
17e9a2af38
Remove LB caching from default health-check config, since HealthCheckServiceInstanceListSupplier has a separate caching mechanism. Fixes gh-849.
2020-11-16 13:11:35 +01:00
Olga Maciaszek-Sharma
7f23cb852f
Add Reactive retries for SC LoadBalancer ( #847 )
...
* Implement retry logic.
* Fix retrying on next instance when RetryExhausted in same instance.
* Fix retrying on next instance when RetryExhausted in same instance.
* Fix retrying on next instance when RetryExhausted in same instance.
* Move duplicated methods to utility class. Fix checkstyle.
* Fix test.
* Add more tests.
* Fix test.
* Add autoConfiguration.
* Refactor and add javadocs.
* Add javadocs.
* Use RetryAwareServiceInstanceListSupplier with reactive retries.
* Update properties.
* Fix the docs.
* Rename utility class.
* Verify interactions in order.
2020-11-12 11:49:33 +01:00
Olga Maciaszek-Sharma
4b3a399f7b
Merge remote-tracking branch 'origin/2.2.x'
...
# Conflicts:
# spring-cloud-commons/src/main/java/org/springframework/cloud/client/DefaultServiceInstance.java
# spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/simple/SimpleDiscoveryClient.java
# spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/simple/SimpleDiscoveryClientAutoConfiguration.java
# spring-cloud-commons/src/main/java/org/springframework/cloud/client/discovery/simple/reactive/SimpleReactiveDiscoveryClientAutoConfiguration.java
# spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/simple/SimpleDiscoveryClientTests.java
# spring-cloud-commons/src/test/java/org/springframework/cloud/client/discovery/simple/reactive/SimpleReactiveDiscoveryClientTests.java
# spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/LoadBalancerExchangeFilterFunctionTests.java
# spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/reactive/ReactorLoadBalancerExchangeFilterFunctionTests.java
# spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/blocking/client/BlockingLoadBalancerClientTests.java
2020-10-12 15:33:22 +02:00
alchemy24
72762d76ed
Deprecates SimpleServiceInstance in favor of DefaultServiceInstance ( #835 )
...
* Initial Commit
* Added URI to DefaultServiceInstance
* Added default constructor
* Fixed PR Comments
2020-10-12 13:41:39 +02:00
Olga Maciaszek-Sharma
25c17082ee
Avoid retrying on same instance ( #834 )
...
* cherry-pick switching to properties
* Pass information on previous ServiceInstance to RequestContext.
# Conflicts:
# spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/blocking/retry/BlockingLoadBalancedRetryPolicy.java
* Add a RoundRobinLoadBalancer implementation that avoids same service instance while retrying.
* Wrap instances in ArrayList. Add tests.
* Enable AvoidPreviousInstanceRoundRobinLoadBalancer by default if SpringRetry on classpath.
* Fix failing tests. Add javadocs and author tags.
* Fix properties.
* Add documentation.
* Fix docs after review.
* Fix docs after review.
* Handle avoiding previous instance with ServiceInstanceListSupplier in place of LoadBalancer.
* Fix property name.
* Change spelling.
2020-09-29 19:36:54 +02:00
Olga Maciaszek-Sharma
1badef953f
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/InterceptorRetryPolicy.java
# spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/LoadBalancerAutoConfiguration.java
# spring-cloud-commons/src/main/java/org/springframework/cloud/client/loadbalancer/RetryLoadBalancerInterceptor.java
# spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/AbstractLoadBalancerAutoConfigurationTests.java
# spring-cloud-commons/src/test/java/org/springframework/cloud/client/loadbalancer/InterceptorRetryPolicyTest.java
# spring-cloud-loadbalancer/src/main/java/org/springframework/cloud/loadbalancer/config/BlockingLoadBalancerClientAutoConfiguration.java
# spring-cloud-loadbalancer/src/test/java/org/springframework/cloud/loadbalancer/config/BlockingLoadBalancerClientAutoConfigurationTests.java
2020-09-24 18:02:35 +02:00
Olga Maciaszek-Sharma
5401628aed
Add retry support for blocking LoadBalancer ( #832 )
...
* Add LoadBalancerProperties and BlockingLoadBalancedRetryPolicy. Add spring-retry dependency in LoadBalancer.
* Add BlockingLoadBalancedRetryFactory
* Move retry properties to LoadBalancerRetryProperties.
* Refactor and remove deprecations, fix checkstyle.
* Add BlockingLoadBalancedRetryPolicy to autoconfiguration. Set default retryableStatusCode prop. Fix javadoc.
* Allow using @Order on LoadBalancedRetryFactory beans.
* Add tests. Reformat tests. Add explanatory comments.
* Add documentation.
* Fix javadoc.
* Fix docs after review.
* Change field name.
2020-09-24 17:31:38 +02:00
Olga Maciaszek-Sharma
00668991a4
Reformat.
2020-09-17 09:44:37 -04:00
Olga Maciaszek-Sharma
7beca68a39
Merge remote-tracking branch 'origin/2.2.x'
...
# Conflicts:
# docs/pom.xml
# pom.xml
# spring-cloud-commons-dependencies/pom.xml
# spring-cloud-commons/pom.xml
# spring-cloud-context-integration-tests/pom.xml
# spring-cloud-context-webflux-integration-tests/pom.xml
# spring-cloud-context/pom.xml
# spring-cloud-context/src/test/java/org/springframework/cloud/bootstrap/encrypt/EnvironmentDecryptApplicationInitializerTests.java
# spring-cloud-loadbalancer/pom.xml
# spring-cloud-starter-loadbalancer/pom.xml
# spring-cloud-starter/pom.xml
# spring-cloud-test-support/pom.xml
2020-08-11 13:25:00 +02:00
Olga Maciaszek-Sharma
018aae3632
Subscribe on flux earlier. Fixes gh-802.
2020-08-11 13:05:07 +02:00
Spencer Gibb
a183bc709f
Use new boot ConfigData framework ( #703 )
...
Bootstrap is now opt-in using `spring.config.use-legacy-processing`. Otherwise, bootstrap is left as is.
If bootstrap is disabled, the `ContextRefresher` uses new `ConfigData` framework from boot.
See #608 for original motivation.
2020-08-06 12:54:25 -04:00
spencergibb
828912100f
Disables failing test.
...
See gh-802
2020-07-31 15:35:14 -04:00
Olga Maciaszek-Sharma
46bf5a01ac
Lb complete lifecycle ( #783 )
...
* Add LoadBalancerLifecycle. Trigger lifecycle callbacks. Set hints from properties.
* Trigger LB lifecycle callbacks from BlockingLoadBalancerClient and RetryLoadBalancerInterceptor.
* Register LifecycleProcessors with @LoadBalancerClients
* Register LifecycleProcessors with @LoadBalancerClients configuration.
* Handle null lifecycle beans map returned from factory. Adjust tests to code changes.
* Handle null lifecycle beans map returned from factory in RetryLoadBalancerInterceptor. Ensure ReactiveLoadBalancer.Factory bean is present while instantiating RetryLoadBalancerInterceptor. Add more tests.
* Remove generics from supports(...) method signature.
* Allow setting hint per service via properties.
* Add some toString() methods. Add more info on deprecated callbacks in javadocs and comments.
* Add javadocs.
* Format javadocs. Add docs.
* Update hint docs.
* Fix docs.
* Fix docs.
* Extract filtering supported lifecycle processors to a separate class; Execute onComplete() calls for DISCARD status in RetryLoadBalancerInterceptor. Remove duplicated `onComplete` calls for FAILED and SUCCESS status in RetryLoadBalancerInterceptor. Add test for no duplicated lifecycle calls in RetryLoadBalancerInterceptorTest.
* Small refactoring: remove deprecated methods use, add final keywords, remove unnecessary keywords.
* Add javadoc.
2020-07-21 18:38:52 +02:00
Olga Maciaszek-Sharma
43ea5b17fc
Remove deprecated Request and Response classes. ( #779 )
2020-07-04 19:15:30 +02:00
Olga Maciaszek-Sharma
b430529ccc
Switch initialDelay to Duration. ( #768 )
2020-05-27 20:18:30 +02:00
Olga Maciaszek-Sharma
cfeb38a369
Merge remote-tracking branch 'origin/2.2.x'
...
# Conflicts:
# docs/src/main/asciidoc/_configprops.adoc
2020-05-27 20:17:48 +02:00
Olga Maciaszek-Sharma
da23fe4f07
Handle exceptions and timeouts new ( #767 )
...
* Handle timeouts and exceptions while retrieving instances.
* Update docs.
2020-05-27 20:11:47 +02:00
Olga Maciaszek-Sharma
b37ef447dc
Desynchronise HealthCheck and Cache.
2020-05-27 17:01:11 +02:00
Olga Maciaszek-Sharma
87e5d7a62b
Fix execution thread for blocking and adjusts timing
...
* Fix execution thread for blocking DiscoveryClientServiceInstanceListSupplier.
* Desynchronise HealthCheck and Cache. Add info about using HealthCheck without Cache to docs.
See gh-760
2020-05-27 10:13:55 -04:00
Olga Maciaszek-Sharma
587f5f568a
Gh 760 health check with cache new ( #765 )
...
* Cache first element of service instance list flux.
* Invoke destroy() and afterPropertiesSet() in non-bean ServiceInstanceListSupplier delegates.
* Fix return updated instances.
* Fix return updated instances.
(cherry picked from commit 88b2f0e869 )
2020-05-26 16:38:04 +02:00
Olga Maciaszek-Sharma
88b2f0e869
Gh 760 health check with cache new ( #765 )
...
* Cache first element of service instance list flux.
* Invoke destroy() and afterPropertiesSet() in non-bean ServiceInstanceListSupplier delegates.
* Fix return updated instances.
* Fix return updated instances.
2020-05-26 16:35:09 +02:00
Spencer Gibb
83bb54bafd
Renames ServiceInstanceListSuppliers to ServiceInstanceListSupplierBuilder ( #761 )
...
Puts static builder() method on ServiceInstanceListSupplier.
Deprecates ServiceInstanceListSupplier.fixed(Environment) and replaces with fixed(serviceId).
2020-05-21 17:06:35 -04:00
Spencer Gibb
a10fbb9b07
Renames ServiceInstanceListSuppliers to ServiceInstanceListSupplierBuilder ( #761 )
...
Puts static builder() method on ServiceInstanceListSupplier.
Deprecates ServiceInstanceListSupplier.fixed(Environment) and replaces with fixed(serviceId).
2020-05-21 14:08:09 -04:00
Andrew Fitzgerald
de0a14b7a5
Removes deprecated ServiceInstanceSupplier
...
Fixes gh-753
2020-05-19 17:35:07 -04:00
Olga Maciaszek-Sharma
84358e143f
Merge remote-tracking branch 'origin/2.2.x'
2020-05-18 16:26:40 +02:00
Olga Maciaszek-Sharma
c998d69c66
Add predefined ServiceInstanceListSupplier configurations. 2nd part of gh-741. ( #758 )
2020-05-18 16:23:48 +02:00
Olga Maciaszek-Sharma
44c9d75953
Merge branch '2.2.x'
2020-05-05 17:59:21 +02:00
Olga Maciaszek-Sharma
8dff101d6f
Lb configuration builders ( #751 )
...
* Adds ServiceInstanceListSuppliers.java with Builder
* Implement TODOs.
* Add javadocs.
* Remove unused type.
* Add test.
* Safer caching config: resolve LoadBalancerCacheManager lazily. Return delegate if LoadBalancerCacheManager not available.
* Switch to using builder in LoadBalancerClientConfiguration.
* Autoformatting with spring-java-format.
* Update docs.
Co-authored-by: Spencer Gibb <spencer@gibb.us >
2020-05-05 17:55:03 +02:00
Olga Maciaszek-Sharma
c33363dde2
Merge branch '2.2.x'
...
# Conflicts:
# docs/src/main/asciidoc/_configprops.adoc
# spring-cloud-loadbalancer/src/main/resources/META-INF/additional-spring-configuration-metadata.json
2020-05-04 18:38:03 +02:00
Olga Maciaszek-Sharma
5f413a7297
Fix capitalisation.
2020-05-04 18:32:42 +02:00
如梦技术
4892418207
spring-cloud-loadbalancer add additional-spring-configuration-metadata.json
...
# Conflicts:
# spring-cloud-loadbalancer/src/main/resources/META-INF/additional-spring-configuration-metadata.json
2020-05-04 18:29:22 +02:00
Olga Maciaszek-Sharma
c1c815eac4
Update license comments.
2020-04-27 15:45:22 +02:00
Olga Maciaszek-Sharma
ad5cb2ebb9
Update license comments.
2020-04-23 15:14:47 +02:00
Spencer Gibb
1ddb18bfd0
Merge branch '2.2.x'
2020-03-25 14:38:21 -04:00
robotmrv
0e3ea3397d
try to fix flaky test ( #718 )
...
fixes gh-716
2020-03-25 14:36:45 -04:00
Spencer Gibb
a03fd4c3f8
Fixes issue
2020-03-20 14:43:47 -04:00