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

百度网站自然排名优化做民宿的网站

百度网站自然排名优化,做民宿的网站,引流用的电影网站怎么做,天津网站建设哪家设计好本文已收录至我的个人网站#xff1a;程序员波特#xff0c;主要记录Java相关技术系列教程#xff0c;共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源#xff0c;让想要学习的你#xff0c;不再迷茫。 什么是流量预热 我们都知道在做运动之前先得来几组… 本文已收录至我的个人网站程序员波特主要记录Java相关技术系列教程共享电子书、Java学习路线、视频教程、简历模板和面试题等学习资源让想要学习的你不再迷茫。 什么是流量预热 我们都知道在做运动之前先得来几组拉伸之类的动作给身体做个热身让我们的身体平滑过渡到后面的剧烈运动中。流量预热也是一样的道理对限流组件来说流量预热就类似于一种热身运动它可以动态调整令牌发放速度让流量变化更加平滑。 我们来举一个例子:某个接口设定了100个Request每秒的限流标准 同时使用令牌桶算法做限流。假如当前时间窗口内都没有Reques t过来那么令牌桶中会装满100个令牌。如果在下一秒突然涌入100个请求这些请求会迅速消耗令牌对服务的瞬时冲击会比较大。因此我们需要一种类似“热身运动”的缓冲机制根据桶内的令牌数量动态控制令牌的发放速率让忙时流量和闲时流量可以互相平滑过渡。 流量预热的做法 我们以Guava中的RateLimiter为例看看流量预热在RateLimiter中是如何运作的我们用下面的状态转换图来展示整个过程: 横坐标是令牌桶的当前容量纵坐标是令牌发放速率我们先从横坐标来分析 横坐标 下面两种场景会导致横坐标的变化: 闲时流量流量较小或者压根没流量的时候横坐标会逐渐向右移动表示令牌桶中令牌数量增多忙时流量当访问流量增大的时候横坐标向左移动令牌桶中令牌数量变少 横轴有两个重要的坐标一个是最右侧的“令牌桶最大容量”这个不难理解。还有一个是Half容量它是一个关键节点会影响令牌发放速率。 纵坐标 纵坐标表示令牌的发放速率这里有3个标线分别是稳定时间间隔2倍间隔3倍间隔。 这里间隔的意思就是隔多长时间发放一个令牌而所谓稳定间隔就是一个基准时间间隔。假如我们设置了每秒10个令牌的限流规则那么稳定间隔也就是1s/100.1秒也就是说每隔0.1秒发一个令牌。相应的3倍间隔的数值是用稳定间隔乘以系数3比如上面这个例子中3倍间隔就是0.3秒。 运作模式 了解了横坐标和纵坐标的含义之后让我们来试着理解预热模型的用例。继续沿用上面10r/s的限流设置稳定间隔0.1s3x间隔是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.13倍间隔是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限流器就对maxPermits和slope(预热期斜率)两个变量做了初始化配置。我把关键步骤都注释在了代码里大家理解了之后可以尝试去阅读这个类的其他方法弄清maxPermits和slope是如何影响令牌发放速率的。
http://www.dnsts.com.cn/news/246498.html

相关文章:

  • 网站客户端制作cpa项目怎么做必须有网站么
  • 团购营销型网站制作百度收录最快的网站
  • 哪里可以做免费的物流网站2万一3万电动汽车
  • 婚恋网站设计有哪些比较好的外贸网站
  • 网站开发p6wordpress自适应高级图片主题
  • 石家庄建设网站的公司可以做装修效果图的网站有哪些
  • 网站用什么软件程序做织梦网站默认密码忘记
  • 微信怎么做捐钱的网站东莞网络推广营销公司
  • 顺德区网站设计网站免费正能量直接进入浏览器下载安装
  • 网站建设招标书组成婚纱网页制作
  • 设计师效果图网站修改wordpress 字体
  • 做商城网站要哪些流程以域名做网站关键词
  • 设计师网站推荐wordpress 表单 水印
  • 企业网站建设进什么科目核算郑州网站建设推广渠道
  • 住房城乡建设部举报网站三木做网站
  • 四博互联做的网站食品包装设计分析
  • 三河市建设局网站云阳有没有做网站的
  • 网站制作技术培训学校建设厅报名网站
  • php网站开发进程状态建设网站学什么语言
  • asp全静态企业网站网站建设又叫什么
  • 手机类网站设计织梦网站主页地址更改
  • 建设信用卡中心网站珠海建设网站官网
  • 最全的数据网站做网站前台内容对应填充
  • 做练习题的网站wordpress 微博备份
  • 虚拟主机购买哪里好承德seo搜索推广
  • 西安网站开发培训进入山东省住房和城乡建设厅网站
  • 建设电影网站的目的网站功能有哪些
  • 抖音带运营搜索引擎优化人员优化
  • 酒店用品网站源码涟水网站开发公司点击查看
  • 旅游网站建设的利益贵州省建设厅网站官网