pub struct LoadBalancer<S: LoadBalanceStrategy> { /* private fields */ }Implementations§
Source§impl<S: LoadBalanceStrategy + 'static> LoadBalancer<S>
impl<S: LoadBalanceStrategy + 'static> LoadBalancer<S>
pub fn new(discovery: Arc<dyn ServiceDiscovery>, strategy: S) -> Self
pub fn with_config( discovery: Arc<dyn ServiceDiscovery>, strategy: S, config: LoadBalancerConfig, ) -> Self
pub async fn init(&self) -> Result<()>
pub fn start(&self) -> LoadBalancerHandle
pub fn select(&self) -> Option<usize>
pub fn select_for_stream(&self, stream_id: StreamId) -> Option<usize>
pub fn release_stream(&self, stream_id: StreamId)
pub fn get_endpoint(&self, server_idx: usize) -> Option<Endpoint>
pub fn report_status(&self, server_idx: usize, status: S::Status)
pub fn record_success(&self, server_idx: usize)
pub fn record_failure(&self, server_idx: usize)
pub fn mark_unhealthy(&self, server_idx: usize)
pub fn mark_healthy(&self, server_idx: usize)
pub fn available_count(&self) -> usize
pub fn server_count(&self) -> usize
pub fn strategy_name(&self) -> &'static str
pub fn acquire(&self, server_idx: usize)
pub fn release(&self, server_idx: usize)
pub fn config(&self) -> &LoadBalancerConfig
Auto Trait Implementations§
impl<S> !Freeze for LoadBalancer<S>
impl<S> !RefUnwindSafe for LoadBalancer<S>
impl<S> Send for LoadBalancer<S>
impl<S> Sync for LoadBalancer<S>
impl<S> Unpin for LoadBalancer<S>where
S: Unpin,
impl<S> UnsafeUnpin for LoadBalancer<S>where
S: UnsafeUnpin,
impl<S> !UnwindSafe for LoadBalancer<S>
Blanket Implementations§
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