Class RandomTrafficLoadBalancer<A extends ServiceInstance,B>

java.lang.Object
io.inverno.mod.discovery.RandomTrafficLoadBalancer<A,B>
Type Parameters:
A - the type of service instance
B - the type of service request
All Implemented Interfaces:
TrafficLoadBalancer<A,B>
Direct Known Subclasses:
WeightedRandomTrafficLoadBalancer

public class RandomTrafficLoadBalancer<A extends ServiceInstance,B> extends Object implements TrafficLoadBalancer<A,B>

A traffic load balancer that selects a random service instance in a list of service instances.

Since:
1.12
Author:
Jeremy Kuhn
  • Constructor Details

    • RandomTrafficLoadBalancer

      public RandomTrafficLoadBalancer(Collection<A> instances)

      Creates a random traffic load balancer.

      Parameters:
      instances - a collection of service instances
  • Method Details

    • next

      public Mono<A> next(B serviceRequest)
      Description copied from interface: TrafficLoadBalancer

      Returns the next service instance to use to process the specified service request.

      Specified by:
      next in interface TrafficLoadBalancer<A extends ServiceInstance,B>
      Parameters:
      serviceRequest - a service request
      Returns:
      a Mono emitting the next service instance