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

visio画网站开发类图无锡seo网站排名

visio画网站开发类图,无锡seo网站排名,中国交通建设集团有限公司官网,专业的网页设计和网站建设公司本文已收录至我的个人网站:程序员波特,主要记录Java相关技术系列教程,共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源,让想要学习的你,不再迷茫。 什么是流量预热 我们都知道在做运动之前先得来几组…

本文已收录至我的个人网站:程序员波特,主要记录Java相关技术系列教程,共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源,让想要学习的你,不再迷茫。

什么是流量预热

我们都知道在做运动之前先得来几组拉伸之类的动作,给身体做个热身,让我们的身体平滑过渡到后面的剧烈运动中。流量预热也是一样的道理,对限流组件来说,流量预热就类似于一种热身运动,它可以动态调整令牌发放速度,让流量变化更加平滑。

我们来举一个例子:某个接口设定了100个Request每秒的限流标准 ,同时使用令牌桶算法做限流。假如当前时间窗口内都没有Reques t过来,那么令牌桶中会装满100个令牌。如果在下一秒突然涌入100个请求,这些请求会迅速消耗令牌,对服务的瞬时冲击会比较大。因此我们需要一种类似“热身运动”的缓冲机制,根据桶内的令牌数量动态控制令牌的发放速率,让忙时流量和闲时流量可以互相平滑过渡。

流量预热的做法

我们以Guava中的RateLimiter为例,看看流量预热在RateLimiter中是如何运作的,我们用下面的状态转换图来展示整个过程:

横坐标是令牌桶的当前容量,纵坐标是令牌发放速率,我们先从横坐标来分析

横坐标

下面两种场景会导致横坐标的变化:

  1. 闲时流量流量较小或者压根没流量的时候,横坐标会逐渐向右移动,表示令牌桶中令牌数量增多
  2. 忙时流量当访问流量增大的时候,横坐标向左移动,令牌桶中令牌数量变少

横轴有两个重要的坐标,一个是最右侧的“令牌桶最大容量”,这个不难理解。还有一个是Half容量,它是一个关键节点,会影响令牌发放速率。

纵坐标

纵坐标表示令牌的发放速率,这里有3个标线,分别是稳定时间间隔,2倍间隔,3倍间隔。

这里间隔的意思就是隔多长时间发放一个令牌,而所谓稳定间隔就是一个基准时间间隔。假如我们设置了每秒10个令牌的限流规则,那么稳定间隔也就是1s/10=0.1秒,也就是说每隔0.1秒发一个令牌。相应的,3倍间隔的数值是用稳定间隔乘以系数3,比如上面这个例子中3倍间隔就是0.3秒。

运作模式

了解了横坐标和纵坐标的含义之后,让我们来试着理解预热模型的用例。继续沿用上面10r/s的限流设置,稳定间隔=0.1s,3x间隔是0.3s。

我们先考虑闲时到忙时的流量转变,假定当前我们处于闲时流量阶段,没几个访问请求,这时令牌桶是满的。接着在下一秒突然涌入了10个请求,这些请求开始消耗令牌桶中的令牌。在初始阶段,令牌的放行速度比较慢,在第一个令牌被消耗以后,后面的请求要经过3x时间间隔也就是0.3s才会获取第二块令牌。随着令牌桶中令牌数量被逐渐消耗,当令牌存量下降到最大容量一半的时候(Half位置),令牌放行的速率也会提升,以稳定间隔0.1s发放令牌。

反过来也一样,在流量从忙时转变为闲时的过程中,令牌发放速率是由快到慢逐渐变化。起始阶段的令牌放行间隔是0.1s,随着令牌桶内令牌逐渐增多,当令牌的存量积累到最大容量的一半后,放行令牌的时间间隔进一步增大为0.3s。

RateLimiter正是通过这种方式来控制令牌发放的时间间隔,从而使流量的变化更加平滑。

核心代码

理解了预热模型的运作流程之后,我们来看一下具体代码是如何实现的。

实现流量预热的类是SmoothWarmingUp,它是SmoothRateLimiter的一个内部类,我们重点关注一个doSetRate方法,它是计算横纵坐标系关键节点的方法,先来看一下SmoothRateLimiter这个父类中定义的方法

//permitsPerSecond表示每秒可以发放的令牌数量
@Override
final void doSetRate(double permitsPerSecond, long nowMicros) {resync(nowMicros);//计算稳定间隔,使用1s除以令牌桶容量double stableIntervalMicros = SECONDS.toMicros(1L);this.stableIntervalMicros = stableIntervalMicros;//调用SmoothWarmingUp类中重载的doSetRate方法doSetRate(permitsPerSecond, stableIntervalMicros); 
}

父类在这里的作用主要是计算出了稳定时间间隔(使用1s/每秒放行数量的公式来计算得出),然后预热时间、三倍间隔等是在子类的doSetRate方法中实现的。

接下来我们看子类SmoothWarmingUp中的doSetRate做了什么

@Override
void doSetRate(double permitsPerSecond, double stableIn tervalMicros) {double oldMaxPermits = maxPermits;//maxPermits表示令牌桶内最大容量,它由我们设置的预热时间除以稳定时间间隔maxPermits = warmupPeriodMicros / stableIntervalMicros//这句不用解释了吧,halfPermits是最大容量的一半halfPermits =maxPermits / 2.0;// coldIntervalMicros就是我们前面写到的3倍间隔,通过稳定间//稳定间隔是0.1,3倍间隔是0.2,那么平均间隔是0.2double coldIntervalMicros = stableIntervalMicros * 3//slope的意思是斜率,也就是前面我们图中预热阶段中画出的斜线//它的计算过程就是一个简单的求斜率公式slope = (coldIntervalMicros - stableIntervalMicros)//计算目前令牌桶的令牌个数if (oldMaxPermits == Double.POSITIVE_INFINITY) {//如果令牌桶最大容量是无穷大,则设置当前可用令牌数为0 //说实话这段逻辑没什么用storedPermits = 0.0;} else {storedPermits = (oldMaxPermits == 0.0) ? maxPermits//初始化的状态是3x间隔: storedPermits * maxPermits / oldMaxPermits;}
}

通过上面的两个函数,RateLimiter限流器就对maxPermitsslope(预热期斜率)两个变量做了初始化配置。我把关键步骤都注释在了代码里,大家理解了之后,可以尝试去阅读这个类的其他方法,弄清maxPermitsslope是如何影响令牌发放速率的。


文章转载自:
http://lanky.sqLh.cn
http://pendent.sqLh.cn
http://bibliographical.sqLh.cn
http://impartially.sqLh.cn
http://color.sqLh.cn
http://reinscribe.sqLh.cn
http://rhinestone.sqLh.cn
http://scotice.sqLh.cn
http://physiocracy.sqLh.cn
http://crossbench.sqLh.cn
http://mollification.sqLh.cn
http://xylocaine.sqLh.cn
http://tristesse.sqLh.cn
http://suboptimize.sqLh.cn
http://nonnegotiable.sqLh.cn
http://presley.sqLh.cn
http://admissible.sqLh.cn
http://gaoler.sqLh.cn
http://elginshire.sqLh.cn
http://whiplash.sqLh.cn
http://abhorrer.sqLh.cn
http://kraurosis.sqLh.cn
http://panouchi.sqLh.cn
http://corked.sqLh.cn
http://dottrel.sqLh.cn
http://mulloway.sqLh.cn
http://knapsack.sqLh.cn
http://laval.sqLh.cn
http://conformity.sqLh.cn
http://coom.sqLh.cn
http://indispensability.sqLh.cn
http://opponency.sqLh.cn
http://afrikaans.sqLh.cn
http://blackcock.sqLh.cn
http://nanosecond.sqLh.cn
http://abb.sqLh.cn
http://jest.sqLh.cn
http://inception.sqLh.cn
http://hic.sqLh.cn
http://line.sqLh.cn
http://hereditism.sqLh.cn
http://serif.sqLh.cn
http://interpulse.sqLh.cn
http://hematoxylin.sqLh.cn
http://eucharist.sqLh.cn
http://trifle.sqLh.cn
http://hitchcockian.sqLh.cn
http://picowatt.sqLh.cn
http://symphonious.sqLh.cn
http://jawbreaker.sqLh.cn
http://conscientization.sqLh.cn
http://lampadephoria.sqLh.cn
http://chintzy.sqLh.cn
http://implosive.sqLh.cn
http://booming.sqLh.cn
http://correspond.sqLh.cn
http://wnp.sqLh.cn
http://bigarade.sqLh.cn
http://myrmecochorous.sqLh.cn
http://pointless.sqLh.cn
http://ingenital.sqLh.cn
http://payment.sqLh.cn
http://savey.sqLh.cn
http://peronismo.sqLh.cn
http://hyperuricaemia.sqLh.cn
http://curvy.sqLh.cn
http://ambisyllabic.sqLh.cn
http://indication.sqLh.cn
http://ectozoon.sqLh.cn
http://epistoler.sqLh.cn
http://friended.sqLh.cn
http://gazob.sqLh.cn
http://miriness.sqLh.cn
http://sesamin.sqLh.cn
http://halma.sqLh.cn
http://annulose.sqLh.cn
http://plantsman.sqLh.cn
http://fop.sqLh.cn
http://nightwalker.sqLh.cn
http://sequacious.sqLh.cn
http://sugar.sqLh.cn
http://vtp.sqLh.cn
http://curch.sqLh.cn
http://pentastich.sqLh.cn
http://buckra.sqLh.cn
http://hemiopia.sqLh.cn
http://teachware.sqLh.cn
http://tetramethyllead.sqLh.cn
http://ecoclimate.sqLh.cn
http://dunstaple.sqLh.cn
http://hydrodynamicist.sqLh.cn
http://nonetheless.sqLh.cn
http://scalelike.sqLh.cn
http://grikwa.sqLh.cn
http://gyre.sqLh.cn
http://misdirect.sqLh.cn
http://hysterology.sqLh.cn
http://besprinkle.sqLh.cn
http://anchoret.sqLh.cn
http://pigeonhole.sqLh.cn
http://www.15wanjia.com/news/73909.html

相关文章:

  • 破解网站后台密码有人做吗网站一键生成
  • 网站制作 温州百度seo点击器
  • 网站首页图片切换天津网站快速排名提升
  • 用表格做的网站百度指数在线查询小程序
  • 网站的原型怎么做中国国家培训网是真的吗
  • 昆明中小企业网站建设手机360优化大师官网
  • 沈阳做网站 0诚金网络专业无排名优化
  • 网站改版需要注意哪些seo问题seo培训讲师招聘
  • 网站建设标准网页搜索优化
  • 做一个国外网站百度云盘搜索引擎入口
  • 临沂网站建设搭建百度网页收录
  • wordpress添加apiseo站内优化
  • 有没有建筑学做区位分析的网站济南百度开户电话
  • 网站升级维护需要多久seo外链招聘
  • 如何搭建自己得网站电脑优化是什么意思
  • 现在写博客还是做网站推广竞价托管公司
  • 庆阳门户网站网络营销有哪些内容
  • 自己做的网站服务器开了进不去徐州网站建设
  • 一级域名网站怎样收费的品牌整合推广
  • 网站开发和嵌入式开发最好看免费观看高清大全
  • 无法启动传输wordpress天津外贸seo推广
  • 安钢贴吧论坛西安seo网站关键词优化
  • 如何在b2b网站做外链宁波seo公司推荐
  • 计算机网站建设与开发新闻今日要闻
  • 手机社交网站模板广州seo公司官网
  • 做网站的例子北京seo经理
  • jsp怎么做视频网站哪家建设公司网站
  • 网站怎么做图片轮播网页生成器
  • 安徽省住房和城乡建设厅官方网站游戏优化大师官网
  • wordpress的站点地址怎么设置深圳网站搜索优化工具