LoadBalancer

Trait LoadBalancer 

Source
pub trait LoadBalancer: Send + Sync {
    // Required methods
    fn select(
        &self,
        service_key: &str,
        instances: &[Instance],
    ) -> Option<Instance>;
    fn reset(&self, service_key: &str);
    fn name(&self) -> &str;
}
Expand description

Load balancer trait for selecting service instances

Required Methods§

Source

fn select(&self, service_key: &str, instances: &[Instance]) -> Option<Instance>

Select one instance from the given list

§Arguments
  • service_key - Unique key for the service (used for stateful balancers)
  • instances - List of available instances to select from
§Returns

Selected instance, or None if no suitable instance found

Source

fn reset(&self, service_key: &str)

Reset balancer state for a service (called when instances change)

Source

fn name(&self) -> &str

Get balancer name

Implementors§