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
This commit is contained in:
committed by
GitHub
parent
587f5f568a
commit
87e5d7a62b
@@ -29,9 +29,9 @@
|
||||
|spring.cloud.inetutils.use-only-site-local-interfaces | false | Whether to use only interfaces with site local addresses. See {@link InetAddress#isSiteLocalAddress()} for more details.
|
||||
|spring.cloud.loadbalancer.cache.caffeine.spec | | The spec to use to create caches. See CaffeineSpec for more details on the spec format.
|
||||
|spring.cloud.loadbalancer.cache.capacity | 256 | Initial cache capacity expressed as int.
|
||||
|spring.cloud.loadbalancer.cache.ttl | 30s | Time To Live - time counted from writing of the record, after which cache entries are expired, expressed as a {@link Duration}. The property {@link String} has to be in keeping with the appropriate syntax as specified in Spring Boot <code>StringToDurationConverter</code>. @see <a href= "https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/convert/StringToDurationConverter.java">StringToDurationConverter.java</a>
|
||||
|spring.cloud.loadbalancer.cache.ttl | 35s | Time To Live - time counted from writing of the record, after which cache entries are expired, expressed as a {@link Duration}. The property {@link String} has to be in keeping with the appropriate syntax as specified in Spring Boot <code>StringToDurationConverter</code>. @see <a href= "https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/convert/StringToDurationConverter.java">StringToDurationConverter.java</a>
|
||||
|spring.cloud.loadbalancer.health-check.initial-delay | 0 | Initial delay value for the HealthCheck scheduler.
|
||||
|spring.cloud.loadbalancer.health-check.interval | 30s | Interval for rerunning the HealthCheck scheduler.
|
||||
|spring.cloud.loadbalancer.health-check.interval | 25s | Interval for rerunning the HealthCheck scheduler.
|
||||
|spring.cloud.loadbalancer.health-check.path | |
|
||||
|spring.cloud.loadbalancer.retry.enabled | true |
|
||||
|spring.cloud.loadbalancer.ribbon.enabled | true | Causes `RibbonLoadBalancerClient` to be used by default.
|
||||
|
||||
@@ -882,7 +882,7 @@ You can set your own `ttl` value (the time after write after which entries shoul
|
||||
as the value of the `spring.cloud.loadbalancer.cache.ttl` property.
|
||||
You can also set your own LoadBalancer cache initial capacity by setting the value of the `spring.cloud.loadbalancer.cache.capacity` property.
|
||||
|
||||
The default setup includes `ttl` set to 30 seconds and the default `initialCapacity` is `256`.
|
||||
The default setup includes `ttl` set to 35 seconds and the default `initialCapacity` is `256`.
|
||||
|
||||
You can also altogether disable loadBalancer caching by setting the value of `spring.cloud.loadbalancer.cache.enabled`
|
||||
to `false`.
|
||||
@@ -951,7 +951,7 @@ We suggest passing a `DiscoveryClientServiceInstanceListSupplier` delegate in th
|
||||
|
||||
You could use this sample configuration to set it up:
|
||||
|
||||
[[zoned-based-custom-loadbalancer-configuration]]
|
||||
[[health-check-based-custom-loadbalancer-configuration]]
|
||||
[source,java,indent=0]
|
||||
----
|
||||
public class CustomLoadBalancerConfiguration {
|
||||
@@ -962,12 +962,13 @@ public class CustomLoadBalancerConfiguration {
|
||||
return ServiceInstanceListSupplier.builder()
|
||||
.withDiscoveryClient()
|
||||
.withHealthChecks()
|
||||
.withCaching()
|
||||
.build(context);
|
||||
}
|
||||
}
|
||||
----
|
||||
|
||||
NOTE:: `HealthCheckServiceInstanceListSupplier` has its own caching mechanism based on Reactor Flux `replay()`, therefore, if it's being used, you may want to skip wrapping that supplier with `CachingServiceInstanceListSupplier`.
|
||||
|
||||
TIP:: In order to make working on your own LoadBalancer configuration easier, we have added a `builder()` method to the `ServiceInstanceListSupplier` class.
|
||||
|
||||
TIP:: You can also use our alternative predefined configurations in place of the default ones by setting the value of `spring.cloud.loadbalancer.configurations` property to `zone-preference` to use `ZonePreferenceServiceInstanceListSupplier` with caching or to `health-check` to use `HealthCheckServiceInstanceListSupplier` with caching.
|
||||
|
||||
Reference in New Issue
Block a user