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

网站开发eq编辑器微盟登录

网站开发eq编辑器,微盟登录,知名企业名字,提供网站建设的公司在限流的世界里,精度往往是关键。我们已经讨论过固定窗口(简单但有突刺)和滑动窗口(更平滑但仍有格子边界)。如果我们需要更精确的控制,滑动日志 (Sliding Log) 算法便登场了。 核心思想:记录每…

在限流的世界里,精度往往是关键。我们已经讨论过固定窗口(简单但有突刺)和滑动窗口(更平滑但仍有格子边界)。如果我们需要更精确的控制,滑动日志 (Sliding Log) 算法便登场了。

核心思想:记录每一笔“交易”

想象一下,你不再关心“格子”,而是为每一个到达的请求都记下精确的时间戳,就像一本详细的日志。

当新请求到来时:

  1. 回顾日志:查看过去固定时间窗口(例如 1 秒)内的所有时间戳记录。

  2. 清理旧账:忽略(或删除)所有超出这个时间窗口的旧记录。

  3. 计数:统计窗口内剩余记录的数量。

  4. 决策:

    • 如果数量小于限制,接受请求,并将新请求的时间戳加入日志。
    • 如果数量达到或超过限制,拒绝请求。

这种方式理论上能提供最精确的限流,因为它关注的是每个单独的请求事件。

Java 实现:用 TreeMap​ 优化内存

直接存储每个请求的时间戳在高并发下可能导致内存爆炸。一个常见的优化是按时间单位(如毫秒)分组,记录每个单位时间内到达的请求数。Java 的 TreeMap<Long, Long>​ 非常适合这个任务:

  • Key (Long): 时间戳(毫秒)。TreeMap​ 自动保持时间排序。
  • Value (Long): 该毫秒到达的请求数量。
// 简化版核心逻辑示意
public synchronized boolean tryAcquire() {long now = System.currentTimeMillis();long windowStart = now - 1000; // 1秒窗口起点// 1. (可选) 清理非常旧的数据,防止 Map 无限增长// treeMap.headMap(now - cleanupInterval).clear();// 2. 高效计算窗口内总数 (利用 TreeMap 的 subMap)long sum = treeMap.subMap(windowStart, true, now, true).values().stream().mapToLong(Long::longValue).sum();// 3. 检查限制if (sum >= QPS) {return false; // 超限,拒绝}// 4. 记录当前请求 (对当前毫秒的计数 +1)treeMap.compute(now, (k, v) -> (v == null) ? 1L : v + 1L);return true; // 允许
}

​TreeMap​ 的 subMap​ 操作能高效地提取出所需时间窗口内的数据进行求和。

优点

  • 极高精度:几乎完全消除了窗口边界效应,限流非常精确。
  • 概念清晰简单。

缺点

  • 内存消耗大:即使按毫秒分组,存储时间戳和计数的 TreeMap​ 仍然比简单的计数器或固定数组占用更多内存,尤其是在高 QPS 下。
  • 并发性能:简单的 synchronized​ 实现可能在高并发下成为瓶颈。

总结

滑动日志算法提供了无与伦比的限流精度,是追求严格控制流量速率场景下的有力武器。然而,这种精度是以更高的内存消耗为代价的。在选择它时,需要仔细权衡精度需求与系统资源限制。



文章转载自:

http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://00000000.rhwty.cn
http://www.dtcms.com/wzjs/602816.html

相关文章:

  • 建设个电商平台网站需要多少钱用网站做淘宝客
  • 南阳高质量建设大市网站链接分析属于网站开发
  • 织梦做网站如何套取别人网站的模板成都网站建设冠辰
  • 海南旅游网站的建设理念四川网站建设益友
  • 如何建设网站济南兴田德润o简介电话做网站毕业答辩问题
  • 北京 网站建设旅游网站毕业设计源码
  • 狮山网站设计长沙建站官网
  • 手机做网页的软件有哪些西安seo哪家好
  • seo从入门到精通广东seo课程
  • 有哪些网站是静态网站中职专业设计网站
  • 镇江做网站seo东莞网站优化推荐
  • dedecms手机网站制作自动刷网站关键字排行
  • 做家居网站设计wordpress主题清除数据库
  • 免费教育网站建设上海app开发制作
  • 使用织梦系统建设网站教程六安seo
  • 鲜花网站前台数据库建设吉林省建设安全协会网站
  • c语言自学免费网站淘宝网官方网
  • 如何细分行业 做网站赚钱做神马网站快速
  • iis网站搭建海尔网站的建设特点
  • 企业网站开发制作合同南京工商注册核名查询系统
  • 用fullpage做的网站网站建设要钱吗
  • 南昌网站建设基本流程网站前台显示数据库指定分类怎么做php
  • 如何安装网站模板文件湖南网站建设公司速来磐石网络
  • 郑州企业网站排名上海网站建设设计公司哪家好
  • 网站h1标签用在哪里wordpress主导航菜单
  • 网站图片漂浮代码烟台网站建设找企汇互联专业
  • 购物网站建设的意义与目的遵义做百度网站一年多少钱
  • 做电影下载网站赚钱郑州建设信息网 首页
  • 中国做健身补剂的网站广西建设工程招标网
  • 大连网站搜索排名搭建网站需要什么软件