楼主: 14417335
跳转到指定楼层
上一主题 下一主题
收起左侧

[经验总结] 限流的五种使用Redis的实现

 
全局:
感谢分享 好文
回复

使用道具 举报

全局:
看了很多token bucket 和 leaky bucket的文章。。。依然百思不得其解。。。每次一看算法实现就觉得,不就是完全倒了个向。。。求问楼主这两者的根本区别在哪里啊?
PS: 而且老看token bucket的文章都没有提burst rate实际计算问题。我感觉好像每分钟的burst rate应该是等于 token per second * 60 + capacity(之前桶满)? 求指教了。
回复

使用道具 举报

🔗
 楼主| 14417335 2019-4-1 09:11:29 | 只看该作者
全局:
鹿鹿鹿鹿鹿鹿鹿 发表于 2019-4-1 09:00
看了很多token bucket 和 leaky bucket的文章。。。依然百思不得其解。。。每次一看算法实现就觉得,不就是 ...

顶楼那段:
Token Bucket 和 Leaky Bucket 虽然理论上有很多不同点。。。
就是讲的两者设计上的不同。算法时间有到个的感觉是因为实现上没有人会实现真正的Leaky,因为哪个延迟太大了。用户方一般无法接受。

头三种都没有办法有效防止burst rate。第四种可以但是cost较大,真正生产上不吸引人。第五种折衷后是防止burst的便宜的好方法。
回复

使用道具 举报

🔗
yuqinlear 2019-4-2 09:49:17 | 只看该作者
全局:
请问下这个朴素的算法有些什么问题:
  1.     if (queue.size() < limit) {
  2.       queue.offer(request);
  3.     } else if (currentTime - queue.peek() < 1 second) {
  4.       reject(request);
  5.     } else {
  6.       queue.pop();
  7.       queue.offer(request);
  8.     }
复制代码
回复

使用道具 举报

🔗
 楼主| 14417335 2019-4-2 20:13:53 | 只看该作者
全局:
yuqinlear 发表于 2019-4-2 09:49
请问下这个朴素的算法有些什么问题:
[mw_shl_code=java,true]    if (queue.size() < limit) {
      qu ...

仅仅看逻辑的话,pseudo code 好像没有什么问题。如果进入queue就是意味着批准。reject出了if else不被处理的话。
回复

使用道具 举报

🔗
hjx500 2019-4-15 10:50:55 | 只看该作者
全局:
还差50分才能看。。。。。。
回复

使用道具 举报

🔗
yhsiashen 2019-4-15 12:45:34 | 只看该作者
全局:
差了85分看不到。。

评分

参与人数 1大米 +1 收起 理由
EdsgerW + 1 加油--

查看全部评分

回复

使用道具 举报

本楼:
全局:
谢谢分享
回复

使用道具 举报

🔗
EdsgerW 2019-5-8 00:22:43 | 只看该作者
全局:
Redis在全局Session存储中使用的比较频繁,最近才开始了解这个,等到分够了用你这个做提高吧:)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册账号
隐私提醒:
  • ☑ 禁止发布广告,拉群,贴个人联系方式:找人请去🔗同学同事飞友,拉群请去🔗拉群结伴,广告请去🔗跳蚤市场,和 🔗租房广告|找室友
  • ☑ 论坛内容在发帖 30 分钟内可以编辑,过后则不能删帖。为防止被骚扰甚至人肉,不要公开留微信等联系方式,如有需求请以论坛私信方式发送。
  • ☑ 干货版块可免费使用 🔗超级匿名:面经(美国面经、中国面经、数科面经、PM面经),抖包袱(美国、中国)和录取汇报、定位选校版
  • ☑ 查阅全站 🔗各种匿名方法

本版积分规则

>
快速回复 返回顶部 返回列表