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

public class RandomLoadBalancer extends Object implements 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

    Constructors
    Constructor
    Description
    RandomLoadBalancer(org.springframework.beans.factory.ObjectProvider<ServiceInstanceListSupplier> serviceInstanceListSupplierProvider, String serviceId)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    reactor.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, wait

    Methods inherited from interface ReactorLoadBalancer

    choose
  • Constructor Details

    • RandomLoadBalancer

      public RandomLoadBalancer(org.springframework.beans.factory.ObjectProvider<ServiceInstanceListSupplier> serviceInstanceListSupplierProvider, String serviceId)
      Parameters:
      serviceInstanceListSupplierProvider - a provider of ServiceInstanceListSupplier that will be used to get available instances
      serviceId - 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: ReactorLoadBalancer
      Choose the next server based on the load balancing algorithm.
      Specified by:
      choose in interface org.springframework.cloud.client.loadbalancer.reactive.ReactiveLoadBalancer<org.springframework.cloud.client.ServiceInstance>
      Specified by:
      choose in interface ReactorLoadBalancer<org.springframework.cloud.client.ServiceInstance>
      Parameters:
      request - - an input request
      Returns:
      - mono of response