一个用于公平服务资源的 Go 库
FAIR 是一款 Go 库,旨在确保资源受限环境中的公平性。它有助于在多个客户端之间均匀分配有限的资源,避免过度分配和资源匮乏。
FAIR 的核心算法基于经常用于网络拥塞控制的 随机公平 BLUE 算法,并做了少量修改。FAIR 的理念是只有在资源确实短缺时才进行限流,而非像令牌桶或漏斗式桶等方法,即使资源仍然可用,也可能拒绝请求(通过创新性地配置 FAIR 可以实现这种行为,但我们不鼓励这种做法)。由于状态存储在多层级的 布鲁姆过滤器 类型的数据结构中,所需内存是固定的,不会随着客户端数量的增加而增加。在正确配置后,FAIR 可以扩展到非常多的客户端,错误识别概率很低,持续错误识别的概率几乎为零。哈希旋转机制定期对客户端重新哈希,以避免长达几分钟的相关行为。
暂无开放 Issues,或尚未同步最近议题。