DDOS就是拒绝访问攻击,也就是说使用分布式的多重攻击技术,将待求的服务器资源全部消耗,这种攻击的预防就是使用限流算法。
-
计数器算法:使用一个计数器,设定阈值,在设定的时间段内如果超过了,就关闭这个ip的访问权限
-
循环队列法:当有新的请求到来时,我们将与这个新请求的时间间隔超过1s的请求,从队列中删除,我们看队列是否有位置容纳新的访问,如果可以 那么就访问,如果没有那么就拒绝访问。
-
漏桶算法:请求先缓存,然后使用恒定的速度去处理这些处于缓存中的请求,一旦超过了缓存,这些新的请求将不会被处理。
-
令牌桶算法:基本的算法步骤是 准备一个储存有令牌的机构,然后每过来一个请求就从令牌桶中取出一个令牌,这样就可以保证请求的 速度恒定。令牌的添加是恒定速度的,所以如果一旦令牌桶中的添加没有请求多,就请求就不会被处理了。
前面两个有颗粒度的过于集中等问题,后两个非常稳定,是更好的算法。
微服务就是搞很多的API 将主要业务,解耦,微服务的鉴权就是说我的这个接口是分不同的权限的,你拥有abc不同的等级对应了我的不同的接口。
一般我们可以识别不同的urlname然后利用字典树,或者基数树(压缩字典树)来进行字符串的匹配工作。