pub struct LoadBalancer { /* private fields */ }Expand description
Load balancer for distributing requests across endpoints
Implementations§
Source§impl LoadBalancer
impl LoadBalancer
Sourcepub fn new(strategy: BalancingStrategy) -> Self
pub fn new(strategy: BalancingStrategy) -> Self
Create a new load balancer with the given strategy
Sourcepub fn add_endpoint(&self, endpoint: Endpoint)
pub fn add_endpoint(&self, endpoint: Endpoint)
Add an endpoint to the load balancer
Sourcepub fn remove_endpoint(&self, endpoint_id: &str) -> bool
pub fn remove_endpoint(&self, endpoint_id: &str) -> bool
Remove an endpoint from the load balancer
Sourcepub fn healthy_endpoints(&self) -> Vec<Arc<Endpoint>>
pub fn healthy_endpoints(&self) -> Vec<Arc<Endpoint>>
Get healthy endpoints
Sourcepub fn select_endpoint(&self) -> NetResult<Arc<Endpoint>>
pub fn select_endpoint(&self) -> NetResult<Arc<Endpoint>>
Select an endpoint using the configured strategy
Sourcepub fn select_with_affinity(&self, session_id: &str) -> NetResult<Arc<Endpoint>>
pub fn select_with_affinity(&self, session_id: &str) -> NetResult<Arc<Endpoint>>
Select endpoint with affinity (sticky session)
Sourcepub fn clear_affinity(&self, session_id: &str)
pub fn clear_affinity(&self, session_id: &str)
Clear session affinity
Sourcepub fn stats(&self) -> BalancerStats
pub fn stats(&self) -> BalancerStats
Get load balancing statistics
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for LoadBalancer
impl !RefUnwindSafe for LoadBalancer
impl Send for LoadBalancer
impl Sync for LoadBalancer
impl Unpin for LoadBalancer
impl !UnwindSafe for LoadBalancer
Blanket Implementations§
Source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
Source§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
Source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Returns the layout of the type.
Source§impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
Source§unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool
Returns whether the given value has been niched. Read more
Source§fn resolve_niched(out: Place<NichedOption<T, N1>>)
fn resolve_niched(out: Place<NichedOption<T, N1>>)
Writes data to
out indicating that a T is niched.