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

网站各个阶段推广上海公共招聘网首页

网站各个阶段推广,上海公共招聘网首页,上海营销平台网站建设,wordpress登录美化插件Sentinel基本应用&限流规则 1.1 概述与作用 随着微服务的流行,服务和服务之间的稳定性变得越来越重要。缓存、降级和限流是保护微服务系统运行稳定性的三大利器。 缓存:提升系统访问速度和增大系统能处理的容量 降级:当服务出问题或者影…

Sentinel基本应用&限流规则

1.1 概述与作用
随着微服务的流行,服务和服务之间的稳定性变得越来越重要。缓存、降级和限流是保护微服务系统运行稳定性的三大利器。

缓存:提升系统访问速度和增大系统能处理的容量 降级:当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉 限流:解决服务雪崩,级联服务发生阻塞时,及时熔断,防止请求堆积消耗占用系统的线程、IO等资源,造成其他级联服务所在服务器的崩溃

这里我们说一下限流,限流的目的应当是通过对并发访问/请求进行限速或者一个时间窗口内的的请求进行限速来保护系统,一旦达到限制速率就可以拒绝服务、等待、降级。

1.2 限流算法
限流算法常用的几种实现方式有如下四种:计数器、滑动窗口、漏桶和令牌桶

1.2.1 计数器(固定窗口)
• 思想:计数器算法是使用计数器在周期内累加访问次数,当达到设定的限流值时,触发限流策略。下一个周期开始时,进行清零,重新计数。此算法在单机还是分布式环境下实现都非常简单,使用redis的incr原子自增性和线程安全即可轻松实现。
在这里插入图片描述
问题:这个算法通常用于QPS限流和统计总访问量,对于秒级以上的时间周期来说,会存在一个非常严重的问题,那就是临界问题,如下图:
在这里插入图片描述
假设1min内服务器的负载能力为100,因此一个周期的访问量限制在100,然而在第一个周期的最后5秒和下一个周期的开始5秒时间段内,分别涌入100的访问量,虽然没有超过每个周期的限制量,但是整体上10秒内已达到200的访问量,已远远超过服务器的负载能力,由此可见,计数器算法方式限流对于周期比较长的限流,存在很大的弊端。

1.2.2 滑动窗口
• 思想:滑动窗口算法是将时间周期分为N个小周期,分别记录每个小周期内访问次数,并且根据时间滑动删除过期的小周期。

如下图,假设时间周期为1min,将1min再分为2个小周期,统计每个小周期的访问数量,则可以看到,第一个时间周期内,访问数量为75,第二个时间周期内,访问数量为100,超过100的访问则被限流掉了
在这里插入图片描述
由此可见,当滑动窗口的格子划分的越多,那么滑动窗口的滚动就越平滑,限流的统计就会越精确。

此算法可以很好的解决固定窗口算法的临界问题。

1.2.3 漏桶
在这里插入图片描述
思想:漏桶算法是首先想象有一个木桶,桶的容量是固定的。当有请求到来时先放到木桶中,处理请求的worker以固定的速度从木桶中取出请求进行相应。如果木桶已经满了,直接返回请求频率超限的错误码或者页面

• 适用场景:漏桶算法是流量最均匀的限流实现方式,一般用于流量“整形”。例如保护数据库的限流,先把对数据库的访问加入到木桶中,worker再以db能够承受的qps从木桶中取出请求,去访问数据库。

• 问题:木桶流入请求的速率是不固定的,但是流出的速率是恒定的。这样的话能保护系统资源不被打满,但是面对突发流量时会有大量请求失败,不适合电商抢购和微博出现热点事件等场景的限流。

1.2.4 令牌桶
在这里插入图片描述
思想:令牌桶是反向的"漏桶",它是以恒定的速度往木桶里加入令牌,木桶满了则不再加入令牌。服务收到请求时尝试从木桶中取出一个令牌,如果能够得到令牌则继续执行后续的业务逻辑。如果没有得到令牌,直接返回访问频率超限的错误码或页面等,不继续执行后续的业务逻辑。

• 适用场景:适合电商抢购或者微博出现热点事件这种场景,因为在限流的同时可以应对一定的突发流量。如果采用漏桶那样的均匀速度处理请求的算法,在发生热点时间的时候,会造成大量的用户无法访问,对用户体验的损害比较大。

1.2.5 各个算法比较
在这里插入图片描述
1.3 限流的方式
• 针对请求进行限制

• 服务器:它能处理的并发连接数是有限的,当超出服务器的最大请求连接数,服务器就会拒绝该请求

• 应用(接口的处理能力(QPS/TPS))。RT (平均响应时间)->Jmeter(压测)

• 资源限制(cpu(线程池)、内存(堆栈内存)、网络资源)

1.4 限流框架
2.1.4.1 guava
springboot-sentinel项目下的RateLimiterDemo

Google的Guava工具包中就提供了一个限流工具类——RateLimiter。RateLimiter是基于“令牌通算法”来实现限流的。

1.4.2 sentinel
限流比较主流的三种算法:漏桶,令牌桶,滑动窗口。而Sentinel采用的是最后一种,滑动窗口来实现限流的。当然sentinel不仅仅局限于限流,它是一个面向分布式服务架构的高可用流量防护组件,主要以流量为切入点,从限流、流量整形、熔断降级、系统负载保护、热点防护等多个维度来帮助开发者保障微服务的稳定性。

http://www.yayakq.cn/news/658826/

相关文章:

  • 俄文淘宝网站建设重庆软装设计公司官网
  • 廊坊网站短链接生成器官方
  • 昆明哪个公司做网站建设最好江西人才招聘网官网
  • 宿迁网站建设介绍公司公司注册查询网
  • 广西柳州网站制作公司wordpress最新版新建页面选择模板
  • 手机网站开发源码网站免费源码下载
  • 黑色门户网站源码南宁做网站找哪家好
  • 北京建设主管部门官方网站怎么建立公司网站平台
  • 湖州市建设局网站做外贸常用的网站
  • 微信订阅号不认证可以做网站吗长沙制作网站公司
  • 网站后台怎么建设在直播网站做前端注意
  • 网站建设硬件要求一家做运动鞋的网站好
  • 云南外贸建站推广公司注册信息怎么查
  • 化妆品网站开发的外文翻译wordpress免费企业资讯主题
  • 优秀网站推荐wordpress 列表页面
  • 网站页面设计好了后台如何添加简单网站制作步骤
  • 郑州网站制作公司名单word后的网站引用怎么做
  • 介绍移动互联网的网站有哪些wordpress .mo .po
  • 福田企业网站优化方案乐亭网站建设
  • 在线旅游网站开发分析报告东莞企石网站建设
  • 网站建设资料自建站是什么意思
  • 邯郸网站优化怎么做微信小程序
  • 建设网站需要哪些硬件西安不动产查询房产信息网
  • 网站有哪些平台网站突然不被百度收录
  • 手机网站底部导航菜单可做产品预售的网站
  • 网站建设策划书前言东莞服务行业推广软件
  • 安徽房和城乡建设部网站网页设计怎么让图片横向填满
  • 网站下载免费软件安装深圳专业做网站排名多少钱
  • 做网站优化选阿里巴巴还是百度遂宁市做网站的公司
  • 武隆网站建设seo平台怎么样