风门
分布式系统的信号灯。
动机
Throttle通过http界面将信号量作为服务提供。顾名思义,主要用例是通过使系统的元素首先请求许可(即获取租约)来限制系统对资源的访问。如果系统由运行在不同计算机上的多个进程或同一网络中的虚拟机组成,那么节流可能会适得其反。
Throttle的目标是易于操作,在极端情况下行为良好,并且无需持久化后端即可工作。
特征
服务器可在Windows,Linux和OS-X上构建并运行。
客户群
Python:具有阻止API的高级客户端。
Rust:具有异步API的低级客户端。
通过强制执行锁定层次结构来防止死锁。
公平(等待时间更长的同伴享有优先权)
大数量的锁不会被很多小数量的锁饿死。
抵御网络中断。
锁将过期,以防止由于网络错误或客户端崩溃而导致信号量计数泄漏。
可以使用发送到服务器的心跳来无限期延长锁定。
可观察性
普罗米修斯度量
登录到Stderr或
2021-03-21 13:12:23
80KB
Rust
1