Module io.inverno.mod.discovery
Package io.inverno.mod.discovery
Class RoundRobinTrafficLoadBalancer<A extends ServiceInstance,B>
java.lang.Object
io.inverno.mod.discovery.RoundRobinTrafficLoadBalancer<A,B>
- Type Parameters:
A
- the type of service instanceB
- the type of service request
- All Implemented Interfaces:
TrafficLoadBalancer<A,
B>
- Direct Known Subclasses:
WeightedRoundRobinTrafficLoadBalancer
public class RoundRobinTrafficLoadBalancer<A extends ServiceInstance,B>
extends Object
implements TrafficLoadBalancer<A,B>
A traffic load balancer that selects instances in a deterministic order by iterating on a list of instances.
This implementation uses a CommandExecutor
in order to return service instances in sequence.
- Since:
- 1.12
- Author:
- Jeremy Kuhn
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.inverno.mod.discovery.TrafficLoadBalancer
TrafficLoadBalancer.Factory<A extends ServiceInstance,
B> -
Constructor Summary
ConstructorDescriptionRoundRobinTrafficLoadBalancer
(Collection<A> instances) Creates a round-robin traffic load balancer. -
Method Summary
-
Constructor Details
-
RoundRobinTrafficLoadBalancer
Creates a round-robin traffic load balancer.
- Parameters:
instances
- a collection of service instances
-
-
Method Details
-
next
Description copied from interface:TrafficLoadBalancer
Returns the next service instance to use to process the specified service request.
- Specified by:
next
in interfaceTrafficLoadBalancer<A extends ServiceInstance,
B> - Parameters:
serviceRequest
- a service request- Returns:
- a
Mono
emitting the next service instance
-