Class RandomLoadBalancer
java.lang.Object
org.springframework.cloud.loadbalancer.core.RandomLoadBalancer
- All Implemented Interfaces:
org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancer<org.springframework.cloud.client.ServiceInstance>, ReactorLoadBalancer<org.springframework.cloud.client.ServiceInstance>, ReactorServiceInstanceLoadBalancer
A random-based implementation of
ReactorServiceInstanceLoadBalancer.- Since:
- 2.2.7
- Author:
- Olga Maciaszek-Sharma, Nan Chiu
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancer
org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancer.Factory<T> -
Field Summary
Fields inherited from interface org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancer
REQUEST -
Constructor Summary
ConstructorsConstructorDescriptionRandomLoadBalancer(org.springframework.beans.factory.ObjectProvider<ServiceInstanceListSupplier> serviceInstanceListSupplierProvider, String serviceId) -
Method Summary
Modifier and TypeMethodDescriptionreactor.core.publisher.Mono<org.springframework.cloud.client.loadbalancer.Response<org.springframework.cloud.client.ServiceInstance>> choose(org.springframework.cloud.client.loadbalancer.Request request) Choose the next server based on the load balancing algorithm.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface ReactorLoadBalancer
choose
-
Constructor Details
-
RandomLoadBalancer
public RandomLoadBalancer(org.springframework.beans.factory.ObjectProvider<ServiceInstanceListSupplier> serviceInstanceListSupplierProvider, String serviceId) - Parameters:
serviceInstanceListSupplierProvider- a provider ofServiceInstanceListSupplierthat will be used to get available instancesserviceId- id of the service for which to choose an instance
-
-
Method Details
-
choose
public reactor.core.publisher.Mono<org.springframework.cloud.client.loadbalancer.Response<org.springframework.cloud.client.ServiceInstance>> choose(org.springframework.cloud.client.loadbalancer.Request request) Description copied from interface:ReactorLoadBalancerChoose the next server based on the load balancing algorithm.- Specified by:
choosein interfaceorg.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancer<org.springframework.cloud.client.ServiceInstance>- Specified by:
choosein interfaceReactorLoadBalancer<org.springframework.cloud.client.ServiceInstance>- Parameters:
request- - an input request- Returns:
- - mono of response
-