ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Sentinel限流

2021-11-01 21:30:14  阅读:156  来源: 互联网

标签:flowRule token sentinel Token 限流 线程 Sentinel


限流的作用:
保护系统避免被瞬时流量冲垮;
预防恶意请求;

如何控制流量:
限流的指标:(可以容纳的流量,已经容纳的流量,可以接受的流程)阈值;
限流的过程:通过算法来实现;
限流的结果:处理策略;

限流的算法:
计数器(zk里面的RequestThrottle) :线程池大小,连接数大小;
滑动窗口:
在这里插入图片描述漏桶算法:
在这里插入图片描述水的流程速度是固定的,桶的大小也是固定的;

令牌桶算法:
在这里插入图片描述令牌桶的设计:桶的大小,令牌标记,定时任务生成令牌,令牌获取的接口;

限流的实现:
Guava
Semphore
分布式限流

服务熔断:

hystrix:
线程的隔离和资源的隔离,可以避免联动的问题,但是会导致线程池创建的特别多,线程切换的成本比较大;

sentinel:
通过并发线程数进行控制;
针对响应时间;

限流:针对请求当前服务的限制;
降级:针对下游返回的结果的处理;

Entry entry= SphU.entry(“resource_name”)
·正常就通过
·被限制就抛异常 FlowException
·同一个资源创建不同的规则,多个规则采用遍历:

List<FlowRule> flowRules = new ArrayList();
FlowRule flowRule = new FlowRule();
flowRule.setResource("doRequest"); //针对resource_name资源设置规则
flowRule.setGrade(RuleConstant.FLOW_GRADE_QPS); //QPS或者并发数
flowRule.setCount(5);  // QPS= 5
flowRules.add(flowRule);
FlowRuleManager.loadRules(flowRules);

·规则由什么组成?
··resource
··grade 类型
··count 阈值
··limitApp 调用来源
··strategy 调用关系
··ontrolBehavior 控制行为(直接拒绝,冷启动,匀速排队)

linux启动sentinel
java -Dsrver.port=7777 -Dcsp.sentinel.dashboard.server=localhost:7777 -Dproject.name=sentinel-dashboard-1.8.0 -jar sentinel-dashboard-1.8.0.jar

集群限流:
在这里插入图片描述
sentinel中的token server会统计连接的所有的token client的访问数,实现总的流量控制;
当token server挂了后,token client可以自己从配置中心拉取规则。(拉取的是单个的还是总的?)

Token Client:
集群流控客户端,用于向所属 Token Server 通信请求 token,集群限流服务端会返回给客户端结果,决定是否限流;
Token Server:
集群流控客户端,处理来自 Token Client 的请求,根据配置的集群规则判断是否应该发放 token(是否通过)

Token Client: 向Token Server请求Token
限流服务器向Client发送Token,决定是否进行限流,
这样资源由服务器进行分配,Client拿着Token去请求服务器.

标签:flowRule,token,sentinel,Token,限流,线程,Sentinel
来源: https://blog.csdn.net/weixin_42569679/article/details/121079588

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有