当前位置: 首页 > news >正文

镇江市建设工程安全监督站网站wordpress主题市场

镇江市建设工程安全监督站网站,wordpress主题市场,招聘网站开发计划书,代理做网站合适吗文章目录 一. 常见的限流算法1. 静态窗口限流2. 动态窗口限流3. 漏桶限流4. 令牌桶限流5. 令牌大闸 二. Sentinal简介三. 代码演示0. 限流场景1. 引入依赖2. 定义资源3. 定义规则4. 启动测试 四. 使用Sentinel控台监控流量1. Sentinel控台1.8.6版本下载地址2. 文档说明#xf… 文章目录 一. 常见的限流算法1. 静态窗口限流2. 动态窗口限流3. 漏桶限流4. 令牌桶限流5. 令牌大闸 二. Sentinal简介三. 代码演示0. 限流场景1. 引入依赖2. 定义资源3. 定义规则4. 启动测试 四. 使用Sentinel控台监控流量1. Sentinel控台1.8.6版本下载地址2. 文档说明3. 启动控制台4. 客户端代码配置连接控制台 五. 使用Sentinel控制台配置接口限流六. SentinelNacos实现限流规则持久化1. 添加依赖2. 增加配置3. Nacos增加流控规则4. 控制台查看 七. 熔断简介 一. 常见的限流算法 方法的具体介绍由AI生成 1. 静态窗口限流 工作原理 将时间划分为固定大小的窗口例如每秒一个窗口。在每个窗口内限制请求的总数。当窗口内的请求数量达到设定的阈值时后续的请求将被拒绝直到下一个窗口开始。优点 实现简单容易理解和部署。能够严格控制单位时间内的请求数量避免系统过载。 缺点 粒度较粗容易出现“突发流量”问题。例如如果一个窗口的请求刚好用完而下一个窗口的请求又集中在窗口开始的瞬间会导致流量的瞬间激增对系统造成冲击。不够灵活无法根据实际流量动态调整窗口大小或阈值。 2. 动态窗口限流 工作原理 在静态窗口的基础上引入动态调整机制。根据系统的实时负载情况如CPU使用率、内存占用等动态调整窗口的大小或阈值。例如当系统负载较高时减小窗口阈值当系统负载较低时适当增加窗口阈值。优点 比静态窗口限流更灵活能够根据系统负载动态调整更好地适应不同的流量情况。能够在一定程度上缓解突发流量对系统的影响。 缺点 实现相对复杂需要实时监控系统的负载情况并进行动态调整。动态调整的策略需要精心设计否则可能会导致系统抖动或调整不及时。 3. 漏桶限流 工作原理 漏桶算法的核心是一个“漏桶”它以固定速率流出水处理请求而流入水请求到达的速率是不可控的。如果流入的水过多导致桶溢出多余的水请求将被丢弃。漏桶算法通过限制流出水的速率来控制请求的处理速率。优点 能够平滑突发流量将突发的请求分散到后续的时间中处理。实现相对简单容易理解。 缺点 由于漏桶的流出速率是固定的因此对突发流量的处理能力有限。如果突发流量过大可能会导致大量请求被丢弃。对于短时间内的高并发请求响应速度可能会较慢因为漏桶需要按照固定速率逐步处理。 4. 令牌桶限流 工作原理 令牌桶算法的核心是一个“令牌桶”系统以固定速率向桶中添加令牌。当请求到达时会尝试从桶中获取令牌。如果桶中有令牌则获取成功请求被处理如果桶中没有令牌则请求被拒绝。令牌桶算法允许在短时间内处理突发流量只要桶中有足够的令牌。优点 能够很好地处理突发流量允许在短时间内处理更多的请求只要令牌足够。灵活性较高可以通过调整令牌的生成速率和桶的容量来适应不同的场景。 缺点 如果突发流量过大可能会导致令牌桶中的令牌快速耗尽后续的请求将被拒绝。实现相对复杂需要管理令牌的生成和消耗。 5. 令牌大闸 工作原理令牌大闸限流是一种相对较新的限流算法其核心思想是通过“大闸”来控制流量。大闸会根据系统的负载情况和流量特征动态地决定是否允许请求通过。它通常结合了多种策略如令牌桶、动态窗口等以实现更灵活的限流效果。例如当系统负载较低时大闸可以适当放宽限制当系统负载较高时大闸会严格限制流量。优点 集成了多种限流策略的优点能够更灵活地应对复杂的流量场景。能够根据系统的实时状态动态调整限流策略避免系统过载。 缺点 实现复杂度较高需要综合考虑多种因素和策略。配置和调优较为复杂需要根据具体场景进行精细调整。 二. Sentinal简介 官网https://sentinelguard.io/zh-cn/index.html Sentinel 是阿里巴巴开源的分布式系统流量控制和熔断降级组件通过流量控制、熔断降级、系统负载保护等功能帮助微服务在高并发场景下保持稳定运行。它基于责任链模式设计通过多个插槽Slot协同工作实现流量监控、规则判断、资源降级等操作。Sentinel 提供可视化的控制台方便用户实时监控系统状态并动态配置规则同时支持与 Spring Cloud、Dubbo 等主流微服务框架无缝集成广泛应用于分布式系统架构中保障系统的高可用性。 重点限流是做在被调用方熔断是做在调用方 三. 代码演示 0. 限流场景 在基于SpringCloud的仿12306项目中对于抢票这一环节需要做限流。对于关键业务doConfirm方法进行限流访问。 1. 引入依赖 引入SpringCloud的sentinel依赖 !-- 限流熔断 --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactId/dependency2. 定义资源 定义限流的内容就是资源 SentinelResource(value doConfirm, blockHandler doConfirmBlock)public void doConfirm(ConfirmOrderDoReq req) {// 业务代码}/*** 降级方法需包含限流方法的所有参数和BlockException参数* param req* param e*/public void doConfirmBlock(ConfirmOrderDoReq req, BlockException e) {LOG.info(购票请求被限流{}, req);throw new BusinessException(BusinessExceptionEnum.CONFIRM_ORDER_FLOW_EXCEPTION);} blockHandler “doConfirmBlock” 表示被阻塞之后调用doConfirmBlock方法 3. 定义规则 在启动类定义并调用规则 SpringBootApplication ComponentScan(com.mystudy) MapperScan(com.mystudy.train.*.mapper) EnableFeignClients(com.mystudy.train.business.feign) EnableCaching public class BusinessApplication {private static final Logger LOG LoggerFactory.getLogger(BusinessApplication.class);public static void main(String[] args) {SpringApplication app new SpringApplication(BusinessApplication.class);Environment env app.run(args).getEnvironment();LOG.info(启动成功);LOG.info(测试地址: \thttp://127.0.0.1:{}{}/test, env.getProperty(server.port), env.getProperty(server.servlet.context-path));// 限流规则initFlowRules();LOG.info(已定义限流规则);}// 定义限流规则private static void initFlowRules(){ListFlowRule rules new ArrayList();FlowRule rule new FlowRule();rule.setResource(doConfirm);rule.setGrade(RuleConstant.FLOW_GRADE_QPS);// Set limit QPS to 20.rule.setCount(1);rules.add(rule);FlowRuleManager.loadRules(rules);} }4. 启动测试 通过JMeter测试启动十个线程同时抢票运行结束后查看限流情况 控制台打印被拦截的请求有8个说明成功限流。 还有2个请求成功进入业务代码是因为每秒只允许1个请求进入运行时间超过1秒 四. 使用Sentinel控台监控流量 1. Sentinel控台1.8.6版本下载地址 https://github.com/alibaba/Sentinel/releases/download/1.8.6/sentinel-dashboard-1.8.6.jar 2. 文档说明 https://sentinelguard.io/zh-cn/docs/dashboard.html 3. 启动控制台 命令行运行 java -Dserver.port18080 -Dcsp.sentinel.dashboard.serverlocalhost:18080 -Dproject.namesentinel-dashboard -jar sentinel-dashboard-1.8.6.jar访问浏览器http://localhost:18080/ 默认用户名密码均是sentinel 4. 客户端代码配置连接控制台 增加配置 # sentinel控台https://github.com/alibaba/spring-cloud-alibaba/wiki/Sentinel spring.cloud.sentinel.transport.port8719 spring.cloud.sentinel.transport.dashboardlocalhost:1808018080端口与上述启动的端口要一致 连接完成后只有当business模块有流量时才会在控制台显示 控制台显示 控制台成功显示流量信息 同时可以在控制台查看限流规则删除修改或者新增 五. 使用Sentinel控制台配置接口限流 有了控制台就不需要把流控规则写死在代码里了可以利用控制台中的簇点链路来增加规则 同时在对应的接口或者方法上增加相对应的注解定义为资源 SentinelResource(value xxx, blockHandler doConfirmBlock) 这样就可以设置动态流控策略了 六. SentinelNacos实现限流规则持久化 上述在控制台修改流控策略的方法在服务器重启之后会消失不能实现持久化因此可以使用SentinelNacos实现限流规则持久化 1. 添加依赖 !-- sentinel nacos --dependencygroupIdcom.alibaba.csp/groupIdartifactIdsentinel-datasource-nacos/artifactId/dependency2. 增加配置 # sentinel nacos spring.cloud.sentinel.datasource.flow.nacos.serverAddr127.0.0.1:8848 spring.cloud.sentinel.datasource.flow.nacos.namespacetrain spring.cloud.sentinel.datasource.flow.nacos.groupIdDEFAULT_GROUP spring.cloud.sentinel.datasource.flow.nacos.dataIdsentinel-business-flow spring.cloud.sentinel.datasource.flow.nacos.ruleTypeflow3. Nacos增加流控规则 [{resource: doConfirm,limitApp: default,grade: 1,count: 100,strategy: 0,controlBehavior: 0,clusterMode: false} ]4. 控制台查看 此时就有持久化配置项了 七. 熔断简介 熔断是一种容错机制用于防止分布式系统中的雪崩效应。当某个服务或资源出现故障如响应时间过长、错误率过高时熔断器会快速失败并停止对该服务的调用避免故障扩散到整个系统。经过一段时间后熔断器会尝试恢复调用如果问题已解决则恢复正常调用。
http://www.w-s-a.com/news/852625/

相关文章:

  • 高端网站建设报价网站建设需要硬件设备
  • 做国际物流在哪些网站找客户营销qq怎么申请
  • 网站做推广百度好还是360好科技厅
  • 网站开发工具排名万户网络建一个网站虽要多少钱
  • 用凡科做的网站要钱吗WordPress城市切换
  • 制作一个门户网站需要多少钱营销型网站特征
  • 手机网站 多html中国建设银行网站包头分行
  • 哪个网站做免费广告好招牌图片效果图设计制作
  • 网站建设优化服务机构苏州市做网站
  • 网站如何优化流程企业网站管理系统视频教程
  • 我想克隆个网站 怎么做贵州住房和城乡建设厅官网
  • 网站建设项目前景上海今天新闻综合频道
  • 做网站推销的如何谈客户wordpress怎么做商城
  • 摄影素材库网站服装页面设计的网站
  • 如何用国外网站做头条做个游戏app的费用大概多少
  • 网站 形象入口页福州网站建设网络公司排名
  • 免费下载教学设计的网站送网站建设管理信息内容审核制度
  • 外贸专业网站的公司百度旗下13个app
  • 物理组简介 网站建设高师院校语言类课程体系改革与建设 教学成果奖申报网站
  • 爱网站无法登录怎么回事手表网
  • 网站建设公司现在还挣钱吗山西手动网站建设推荐平台
  • 重庆建设工程交易信息网站网站制作公司起名
  • 东莞寮步做网站的有吗企业宣传册制作
  • 做网站的软件是哪个上蔡做网站
  • 前后端分离实现网站开发紧急通知网页升级
  • 河北专业网站建设公司推荐佛山小程序开发平台
  • 网站开发强制开启浏览器极速模式建设网站有什么风险
  • 360全景网站建设常州专业网站建设公司咨询
  • 重庆大渡口网站建设网站增加一体化建设功能的好处
  • 网站开发完整视频网站上传 404