实现以下速率限制用例的最佳机制是什么?可以使用像Token Bucket这样的通用算法,但我希望实现在memcached的上下文中感谢你的帮助。
一天只允许客户ABC打100个电话。
一小时内只允许对客户ABC进行50次API调用。
在一小时内,对于任何用户id,只允许对customer abc进行5次api调用。
最佳答案
当达到此限制时,您希望发生什么?您可以阻止服务或重定向到“明天再来”页面,但这很难看。
您可以降低处理它们的请求的速度,但这对于每秒处理数个请求的速度更为有用。例如,客户ABC被限制在每秒或每分钟100次。对于您所说的非常低的速率,客户机会超时并认为服务器已经死机。