速率限制与通知服务设计指南
1. 速率限制服务设计
1.1 潜在恶意活动与 DDoS 迹象监测
在速率限制服务中,需要关注一些潜在的异常情况,这些情况可能暗示着恶意活动或 DDoS 攻击的尝试:
- 即使被影子封禁,某些用户仍持续以高频率发起请求,这可能是恶意活动的迹象。
- 在短时间内,出现异常多的用户被速率限制,这可能是 DDoS 攻击的迹象。
1.2 客户端库功能提供
用户服务不必为每个请求都查询速率限制器服务。一种替代方法是,用户服务聚合用户请求,并在以下特定情况下查询速率限制器服务:
- 积累了一批用户请求。
- 注意到请求速率突然增加。
将速率限制实现为库而非服务也是一种思路。但如果完全作为库实现,主机需要在内存中存储所有用户请求,并同步这些请求的时间戳,这就要求使用像 ZooKeeper 这样的配置服务,这对大多数开发者来说可能过于复杂且容易出错。因此,可以提供一个能在客户端进行一些处理的库,以提高速率限制服务的性能,减少对服务的请求频率。
不过,将处理工作在客户端和服务器之间拆分,可能会导致客户端和服务器之间的紧密耦合,这通常是一种反模式。如果要在客户端进行数据处理,至少应满足以下条件之一:
- 处理过程应简单,以便在服务器应用的未来版本中易于继续支持该客户端库。
- 处理过程资源密集,在客户端进行处理的维护开销,与运行服务的显著成本降低相比是值得的。
- 应明确说明支持生命周期,清楚告知用户客户端何时将不再受支持。
在对速率限制器的请求进行批处理时,可以通过试验不同的批处理大小,来确定准确性和网络流量之间的
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



