标签:inf 能力 限制 ima dos攻击 协议 slb 假设 kong
限流的原则,是尽量在流量源头限,并且是需要依据现有团队所掌握的技能来。
如上最左侧便是主要流量的来源入口,首先就要限制的地方就是slb节点的income流量
slb节点的流量特点是啥?加限流怎么加?限流限的是啥?
错了,此处是拦截,不是限流...
流量特点:
需要拦截是啥(由于流量过了这个节点就是我们的应用系统了,因此最好是把非业务应用相关的流量挡住,限制住,让它有序进来,不要冲垮系统):
有些许限流的:
上述是slb节点,但是也有团队考虑到本身技能,以及代码git化存储的原则,会把某些配置往后面的nginx/kong移,因为slb的配置是UI界面化的,代码化存储比较不直接;
但是nginx/kong这种就相对容易多了,而且恢复时只要脚本到位,分分钟就恢复一套系统,很方便。
nginx节点的流量特点是啥?加限流怎么加?限流限的是啥?
到了这里,ddos这种攻击流量应该算是过滤掉了,常见的sql注入等攻击也过滤掉了;但是还存在爬虫流量(有时,这种流量是我们需要的,SEO推广等);也会包含高级攻击流量
因此,nginx节点,需要做的限流是(通用级别的限流):
spring cloud gateway节点的流量特点是啥?加限流怎么加?限流限的是啥?
到了这里,一般普通静态H5资源的访问已经没有了(已经重定向到其他nginx节点分流处理调了);gateway处理的都是动态编程语言需要处理的流量,这里指java
也就是说,到了这个节点,开始进入java系统领域,流量承受能力比nginx降了1个等级,需要做更多的限制。
需要做的:
隔离性:
此处的限流和nginx的限流有啥区别?
java微服务节点的流量特点是啥?加限流怎么加?限流限的是啥?
到了这里,就是具体的微服务应用了,单个微服务所能承受的流量,做得好的话是能用jmeter测量出来的,可以通过这个值来参考设置
再然后,到了具体服务中了,其实限流的维度就更多了,当然需要考量下是否需要加很多限流,脆弱敏感的服务就加些,比如计费等,或者用其他技术做限流,如:queue,然后固定住consumer数来消费,稳住速率。
所采用技术和gateway一样,也可以自己实现,实现难度都还好。
流量大的系统,最好是用特定技术把income请求根据不同的维度划分好独立的线程池,不要相互影响;由本服务发起的到其他服务的请求调用,也需要单独的线程池来处理。总之目标就是都独立,不互相影响,即便其他服务慢了 ,
自己也不慢。
因此,熔断又出现了:
标签:inf 能力 限制 ima dos攻击 协议 slb 假设 kong
原文地址:https://www.cnblogs.com/aarond/p/ratelimiter.html