pub struct ReadWriteRouter { /* private fields */ }Expand description
读写分离路由器
master 处理写请求,slave 集群处理读请求。
根据 LoadBalanceStrategy 在多个 slave 间分配读请求。
Implementations§
Source§impl ReadWriteRouter
impl ReadWriteRouter
pub fn new(master: &str, slaves: Vec<&str>) -> Self
Sourcepub fn slave(&self) -> &str
pub fn slave(&self) -> &str
根据当前策略选择一个 slave
如果 slaves 为空,回退到 master。 如果启用健康检查,会跳过 Unhealthy/Drained 的 slave。
Sourcepub fn set_strategy(&mut self, strategy: LoadBalanceStrategy)
pub fn set_strategy(&mut self, strategy: LoadBalanceStrategy)
设置负载均衡策略
Sourcepub fn strategy(&self) -> LoadBalanceStrategy
pub fn strategy(&self) -> LoadBalanceStrategy
获取当前策略
Sourcepub fn health_checker(&self) -> &HealthChecker
pub fn health_checker(&self) -> &HealthChecker
健康检查器引用
Sourcepub fn latency_stats(&self) -> &LatencyStats
pub fn latency_stats(&self) -> &LatencyStats
延迟统计引用
Sourcepub fn record_latency(&self, slave: &str, latency: Duration)
pub fn record_latency(&self, slave: &str, latency: Duration)
记录一次 slave 请求的延迟
Sourcepub fn set_read_rationing(&self, percent: u8)
pub fn set_read_rationing(&self, percent: u8)
配置读写比例
Sourcepub fn read_rationing_percent(&self) -> u8
pub fn read_rationing_percent(&self) -> u8
获取当前读写比例
Sourcepub fn acquire(&self, slave: &str) -> Result<(), String>
pub fn acquire(&self, slave: &str) -> Result<(), String>
在某个 slave 上获取连接(增加连接计数,用于 LeastConnections)
Sourcepub fn connection_count(&self, slave: &str) -> Option<usize>
pub fn connection_count(&self, slave: &str) -> Option<usize>
查询某个 slave 的当前连接数(用于测试和监控)
Auto Trait Implementations§
impl !Freeze for ReadWriteRouter
impl RefUnwindSafe for ReadWriteRouter
impl Send for ReadWriteRouter
impl Sync for ReadWriteRouter
impl Unpin for ReadWriteRouter
impl UnsafeUnpin for ReadWriteRouter
impl UnwindSafe for ReadWriteRouter
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