pub struct HealthChecker {
pub failure_threshold: u32,
pub recovery_cooldown: Duration,
/* private fields */
}Expand description
健康检查器:跟踪每个 slave 的健康状态,并支持故障转移
Fields§
§failure_threshold: u32连续失败次数阈值,达到后标记为 Unhealthy
recovery_cooldown: Duration自动故障转移恢复时间(健康检查恢复后多久重新加入集群)
Implementations§
Source§impl HealthChecker
impl HealthChecker
pub fn new(failure_threshold: u32) -> Self
Sourcepub fn set_health(&self, slave: &str, health: SlaveHealth)
pub fn set_health(&self, slave: &str, health: SlaveHealth)
标记 slave 为指定健康状态
Sourcepub fn record_failure(&self, slave: &str) -> bool
pub fn record_failure(&self, slave: &str) -> bool
记录一次失败,达到阈值后自动标记为 Unhealthy 返回 true 表示触发了故障转移
Sourcepub fn record_success(&self, slave: &str)
pub fn record_success(&self, slave: &str)
记录一次成功,重置失败计数
Sourcepub fn health(&self, slave: &str) -> Option<SlaveHealth>
pub fn health(&self, slave: &str) -> Option<SlaveHealth>
查询 slave 健康状态,未注册返回 None
Sourcepub fn list_by_health(&self, health: SlaveHealth) -> Vec<String>
pub fn list_by_health(&self, health: SlaveHealth) -> Vec<String>
列出所有处于指定状态的 slave
Sourcepub fn healthy_slaves(&self) -> Vec<String>
pub fn healthy_slaves(&self) -> Vec<String>
返回所有健康 slave 列表
Sourcepub fn unhealthy_slaves(&self) -> Vec<String>
pub fn unhealthy_slaves(&self) -> Vec<String>
返回所有不健康 slave 列表
Sourcepub fn failure_count(&self, slave: &str) -> u32
pub fn failure_count(&self, slave: &str) -> u32
返回当前连续失败次数
Trait Implementations§
Auto Trait Implementations§
impl !Freeze for HealthChecker
impl RefUnwindSafe for HealthChecker
impl Send for HealthChecker
impl Sync for HealthChecker
impl Unpin for HealthChecker
impl UnsafeUnpin for HealthChecker
impl UnwindSafe for HealthChecker
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