访问控制定义
        访问控制就是对资源使用的限制。首先,数据只能被授权的用户使用,未授权的用户不能使用;其次,授权的用户在使用数据时也只能在授予的一定权限内使用,超出允许权限之外的操作则无法使用。

系统访问控制
        系统访问控制对计算机进行了第一道安全防护,非授权人员无法通过认证打开计算机系统,也就无法看到数据,无法对数据进行进一步的操作。
在技术上采用身份认证的方式实现。身份认证就是采用密码认证、代表用户身份的物品(如智能卡、IC 卡等)或用户生理特征(如指纹、视网膜)的标识鉴别访问者的身份。通过身份认证可以判断出访问系统的人是否是授权的合法用户。

数据访问频率控制
        本来就是真实的用户,并且开通了appid,但是出现频繁调用接口的情况;这种情况需要给相关appid限流处理,常用的限流算法包括:令牌桶限流,漏桶限流,计数器限流;

令牌桶限流
        令牌桶算法的原理是系统以一定速率向桶中放入令牌,填满了就丢弃令牌;请求来时会先从桶中取出令牌,如果能取到令牌,则可以继续完成请求,否则等待或者拒绝服务;令牌桶允许一定程度突发流量,只要有令牌就可以处理,支持一次拿多个令牌;

漏桶限流
        漏桶算法的原理是按照固定常量速率流出请求,流入请求速率任意,当请求数超过桶的容量时,新的请求等待或者拒绝服务;可以看出漏桶算法可以强制限制数据的传输速度;

计数器限流
        计数器是一种比较简单粗暴的算法,主要用来限制总并发数,比如数据库连接池、线程池、秒杀的并发数;计数器限流只要一定时间内的总请求数超过设定的阀值则进行限流;具体基于以上算法如何实现,Guava提供了RateLimiter工具类基于基于令牌桶算法:RateLimiter rateLimiter = RateLimiter.create(5);

        以上代码表示一秒钟只允许处理五个并发请求,以上方式只能用在单应用的请求限流,不能进行全局限流;这个时候就需要分布式限流,可以基于redis+lua来实现;