#weighted #balancing #weight

weighted-rs

一个加权平衡算法库

4个版本

0.1.3 2021年8月25日
0.1.2 2019年9月16日
0.1.1 2019年9月1日
0.1.0 2019年8月30日

#605算法 分类中

Download history 525/week @ 2024-03-15 503/week @ 2024-03-22 551/week @ 2024-03-29 346/week @ 2024-04-05 456/week @ 2024-04-12 590/week @ 2024-04-19 386/week @ 2024-04-26 312/week @ 2024-05-03 372/week @ 2024-05-10 315/week @ 2024-05-17 262/week @ 2024-05-24 393/week @ 2024-05-31 450/week @ 2024-06-07 543/week @ 2024-06-14 665/week @ 2024-06-21 284/week @ 2024-06-28

1,987 每月下载次数
5 个crate(其中4个直接使用) 使用

MIT 许可证

16KB
330

weight-rs

Build Status Crate API

一个用于加权平衡算法的Rust库。

它提供了三种加权平衡(选举)算法。一种是随机算法。另一种是LVS使用的加权平衡算法。第三种是Nginx使用的平滑加权平衡算法。

LVS加权轮询调度介绍在 http://kb.linuxvirtualserver.org/wiki/Weighted_Round-Robin_Scheduling。Nginx平滑加权轮询平衡算法介绍在 https://github.com/phusion/nginx/commit/27e94984486058d73157038f7950a0a36ecc6e35。随机算法虽然遵循权重配置,但不是平滑的。

使用很简单

    use weighted-rs::{SmoothWeight, Weight};
    use std::collections::HashMap;

    let mut sw: SmoothWeight<&str> = SmoothWeight::new();
    sw.add("server1", 5);
    sw.add("server2", 2);
    sw.add("server3", 3);

    for _ in 0..100 {
        let s = sw.next().unwrap();
        println!("{}", s);
    }

用法

将以下内容添加到您的 Cargo.toml

[dependencies]
weighted-rs = "0.1.1"

许可证

weighted-rs在MIT许可证和Apache许可证(版本2.0)的条款下分发。

请参阅 LICENSE-APACHELICENSE-MITCOPYRIGHT 以获取详细信息。

依赖

~305KB