最近在接触登陆相关的项目,里面涉及到对用户访问的频率控制,包括同一个IP,同一个Uid在某段时间的访问次数限制。
1.频率控制措施
- 弹图片验证码
- 一段时间内禁止登陆(封号一段时间)
2.要求
- 设置某段时间内的最多访问次数(两个参数:时间+次数)
- 区分不同业务的频率控制服务(业务类型)
- 并发控制(访问次数存储在何处,如何修改,如何判断是否超过限制,如何加锁或使用原子操作)
3.实现
- 某段时间+最多访问次数+业务类型,可以配置到数据库或配置文件
- 访问次数存储,由于写的频率很高,采用缓存的方式存储
- 控制并发—在何处加锁(访问次数的修改处)