pub trait LbStrategy: Send + Sync {
// Required methods
fn strategy(&self) -> Strategy;
fn contain(&self, hash_code: u64) -> bool;
fn add_backend(&self, addr: Address);
fn remove_backend(&self, addr: &Address) -> bool;
fn get_backend(&self, key: &str) -> Option<BackendState>;
fn get_backends(&self) -> Vec<BackendState>;
fn get_origin_backends(&self) -> Vec<BackendState>;
// Provided methods
fn backend<KEY: AsRef<str>>(
this: Box<dyn LbStrategy>,
key: KEY,
) -> Option<BackendState>
where Self: Sized { ... }
fn disable_backend(&self, addr: &Address) -> bool { ... }
fn enable_backend(&self, addr: &Address) { ... }
}Expand description
策略trait
Required Methods§
Sourcefn add_backend(&self, addr: Address)
fn add_backend(&self, addr: Address)
添加一个后端地址
Sourcefn remove_backend(&self, addr: &Address) -> bool
fn remove_backend(&self, addr: &Address) -> bool
移除一个后端地址
Sourcefn get_backend(&self, key: &str) -> Option<BackendState>
fn get_backend(&self, key: &str) -> Option<BackendState>
获取一个后端地址
Sourcefn get_backends(&self) -> Vec<BackendState>
fn get_backends(&self) -> Vec<BackendState>
获取所有后端地址
Sourcefn get_origin_backends(&self) -> Vec<BackendState>
fn get_origin_backends(&self) -> Vec<BackendState>
获取原始的所有后端地址
Provided Methods§
Sourcefn backend<KEY: AsRef<str>>(
this: Box<dyn LbStrategy>,
key: KEY,
) -> Option<BackendState>where
Self: Sized,
fn backend<KEY: AsRef<str>>(
this: Box<dyn LbStrategy>,
key: KEY,
) -> Option<BackendState>where
Self: Sized,
获取一个后端地址, 通过通用key
Sourcefn disable_backend(&self, addr: &Address) -> bool
fn disable_backend(&self, addr: &Address) -> bool
使一个后端地址无效
Sourcefn enable_backend(&self, addr: &Address)
fn enable_backend(&self, addr: &Address)
使一个后端地址有效