redis限流(redis限流器 时间窗口)

“古之欲明明德于天下者,先治其国;欲治其国者,先齐其家;欲齐其家者,先修其身;欲修其身者,先正其心;欲正其心者,先诚其意;欲诚其意者,先致其知,致知在格物。物格而后知至,知至而后意诚,意诚而后心正,心正而后身修,身修而后家齐,家齐而后国治,国治而后天下平。”–《礼记·大学》

在应对秒杀、大促、双 11、618 等高性能压力的场景时,限流已经成为了标配技术解决方案,为保证系统的平稳运行起到了关键性的作用。不管应用场景是哪种,限流无非就是针对超过预期的流量,通过预先设定的限流规则选择性的对某些请求进行限流“熔断”。

根据修身、齐家、治国平天下的理念,限流与熔断要先从小点着手,即先对单机进行限流与熔断,然后对微服务小集群做限流与熔断,最后是对整个流程的服务集群做限流与熔断。

1. 限流

1.1 单机限流(修身)

修其身

a>>限制并发量

import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;public class SemaphoreTest { private static final int THREAD_COUNT = 30; private static ExecutorService threadPool = Executors .newFixedThreadPool(THREAD_COUNT); private static Semaphore s = new Semaphore(10); public static void main(String[] args) { for (int i = 0; i < THREAD_COUNT; i++) { threadPool.execute(new Runnable() { @Override public void run() { try { s.acquire(); System.out.println(Thread.currentThread().getName()); Thread.sleep(5000); System.out.println(“————–“); s.release(); } catch (InterruptedException e) { } } }); } threadPool.shutdown(); }}

b>>计数器,以CountDownLatch为例

import java.util.concurrent.CountDownLatch;public class CountDownLatchTest2 { public static void main(String[] args) { // 创建计数器,初始化为2 final CountDownLatch latch = new CountDownLatch(2); new Thread(() -> { try { System.out.println(“子线程”+Thread.currentThread().getName()+”正在执行”); Thread.sleep(3000); System.out.println(“子线程”+Thread.currentThread().getName()+”执行完毕”); latch.countDown();// 减一 } catch (InterruptedException e) { e.printStackTrace(); } }).start(); new Thread(() -> { try { System.out.println(“子线程”+Thread.currentThread().getName()+”正在执行”); Thread.sleep(3000); System.out.println(“子线程”+Thread.currentThread().getName()+”执行完毕”); latch.countDown(); } catch (InterruptedException e) { e.printStackTrace(); } }).start(); try { System.out.println(“等待2个子线程执行完毕…”); // 阻塞 latch.await(); System.out.println(“2个子线程已经执行完毕”); System.out.println(“继续执行主线程”); } catch (InterruptedException e) { e.printStackTrace(); } }}

c>>guava RateLimiter

public void test(){ /** * 创建一个限流器,设置每秒放置的令牌数:2个。速率是每秒可以2个的消息。 * 返回的RateLimiter对象可以保证1秒内不会给超过2个令牌,并且是固定速率的放置。达到平滑输出的效果 */ RateLimiter r = RateLimiter.create(2); while (true) { /** * acquire()获取一个令牌,并且返回这个获取这个令牌所需要的时间。如果桶里没有令牌则等待,直到有令牌。 * acquire(N)可以获取多个令牌。 */ System.out.println(r.acquire()); }}

1.2 分布式限流(齐家)

齐其家

a>> nginx

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=2r/s;server { location / { limit_req zone=mylimit; }}

b>>api-gateway+redis限流

1.3 大流程限流(治国平天下)

可以从防火墙,cdn,路由器,api网关等做限流

治国平天下

2. 熔断对比

熔断处理逻辑类似,可以利用一些现成的框架,如Sentinel、Hystrix、resilience4j等。

功能对比

熔断对比

参考文献:

【1】https://mp.weixin.qq.com/s?__biz=MjM5MDE0Mjc4MA==&mid=2651008444&idx=1&sn=a579c3ceb143ea30930bd4c6d4a8d7e2&chksm=bdbed5ef8ac95cf93e71c5393f08e3b97a7e19e8232ce3872231f2cae74f7a19ab15501aeb44&scene=27#wechat_redirect

【2】https://mp.weixin.qq.com/s?__biz=MzIwMzY1OTU1NQ==&mid=2247484306&idx=1&sn=b6c1b7b9d7c57bbb9f82ec451bcda867&chksm=96cd43dea1bacac8a24cde429146f69dba8bb15c5c9c3fe9adfe858d9a4349cc127fbfa84a8c&scene=27#wechat_redirect

【3】https://github.com/alibaba/Sentinel/wiki/Guideline:-%E4%BB%8E-Hystrix-%E8%BF%81%E7%A7%BB%E5%88%B0-Sentinel

本文来自投稿,不代表展天博客立场,如若转载,请注明出处:https://www.me900.com/265354.html

(0)

相关推荐

  • 切屏的时候黑屏正常吗,dnf开游戏黑屏时间长

    很多玩家在登录过久以后 切屏会出现失败的情况 还有的玩家 全屏后 不小心弹回桌面就切不回去了 (如下图) 其实这都是腾讯自己的插件 Cross搞的鬼 由于该插件 随DNF启动 当DNF变化时 这插件跟不上变化 因此DNF黑屏无法切换 下面上教程! 首先找到 地下城与勇士\start\Cross\Core\Stable 文件夹 CrossProxy.exe文件…

    2023-07-12
  • 网店转让什么平台好,网店转让平台排行榜

    《网店转让:寻找可靠平台的指南》 在当今数字化的商业时代,网店转让已成为一种常见的商业行为。 无论是因为个人原因需要转让网店,还是想要收购一家现成的网店来开展业务,选择一个好的平台至关可能会起到至关重要的作用。 那么,网店转让什么平台好呢?下面我们就来一起探讨一下。 一、平台的知名度与信誉度 一个知名且信誉良好的平台可能会给你带来更多的保障和便利。 比如像淘…

    2025-07-04
  • 双眼皮胶水怎么洗,双眼皮胶水哪个品牌好

    双眼皮胶是单眼皮女生必备大眼神品,虽然好用有方法,但卸妆可真是历尽艰辛。你是不是也有这样的烦恼,卸了半天眼皮还是黏黏的?下面就给您分享怎样洗干净它,一起学起来吧。 如何卸掉双眼皮胶? 一、用化妆棉沾一点卸妆水轻轻一擦就掉了,要用质量好点的卸装水哦,一般品牌水质多一些的都可以擦掉,连睫毛膏都可以擦干净。 二、用强生婴儿油,胶水软化后很容易就会和皮肤分开了。但是…

    2023-06-28 投稿
  • 格力是哪个国家的产品品牌,格力真正的国货之光

    文 | 华商韬略 董晓霏 “**开利虽然是世界 500 强,但是卖给他们,我们的国货就没了!格力虽小,还是有前途的!” 打退**巨头对格力的“白送”式收购,可能是董明珠事业上最重要的惊险一跃。也多亏董明珠讲原则讲民族大义,格力才有机会成为世界500强。 谈及接班人标准,董明珠放言,不以亲属为关系,不以朋友为关系,只以能力为关系。 为改变珠海吸引外资在广东落后…

    2022-04-17 投稿
  • 验血空腹的要求,空腹抽血怎么算空腹

    检查前一天,千叮咛万嘱咐他:“明早要空腹抽血哦,在抽血检查前不要吃早饭。” 待到次日查房时,问:“您吃早饭了吗?待会记得去抽血检查哦!”,他十分骄傲又诚恳地回答道:“小姑娘,我没吃饭,只吃了一个馒头!” 听到这样的回复,当时的小编哭笑不得,而这种情况在临床上屡见不鲜。 2020年中华人民共和国国家卫生健康委员会发布最新《静脉血液标本采集指南》(以下简称《指南…

    2023-07-13 投稿
  • 正规移动流量卡(哪些设备需要流量卡)

    智能手机在我们日常生活中已经成为了不可或缺的一部分。我们可以在手机上进行各种事情,例如看新闻、聊天、上网、玩游戏、购物、预定机票和酒店等等。这些都需要网络的支持,也就是流量的支持。但是,流量并不是无限的,很多人都会遇到流量不足的问题。这时,我们需要一种能够提供大量通用流量的移动流量卡。 近年来,中国移动推出了一种特别的流量卡,这就是“中国移动长期通用卡”,是…

    2023-06-12 投稿
  • 19元流量大王卡(19元大王卡多少流量)

    近日,中国电信安徽校园牛卡19元套餐上线。牛卡月租19元,包含国内流量30GB、校内流量60GB,国内语音100分钟+国内短彩信100条。超出后1元/800M,流量超出后不降速。 需要注意的是,这一套餐仅限安徽地区高校学生办理,且年龄必须在26岁及以下用户办理,校内流量指的是在安徽地区的高校。 值得注意的是,套餐内包含定向流量合计40GB,当月累计定向流量达…

    2023-05-28
  • 转让网店平台哪家好,转让网店平台哪家好一点

    《关于转让网店平台哪家好的探讨》 在当今数字化的商业时代,网店转让成为了一种常见的商业行为。 随着电商行业的蓬勃发展,越来越多的人希望通过转让网店来实现资产的变现或者业务的转型。 然而,面对众多的转让网店平台,许多人都感到困惑,不知道哪家平台更好。 本文将对一些常见的转让网店平台进行分析和比较,帮助读者更好地了解转让网店平台的特点和优劣。 一、淘宝网店转让平…

    2025-03-27
  • 最红火的地摊生意项目,摆地摊卖盲盒

    近两年,由于受疫情影响,很多人都没有工作了,这样收入自然就低了,一家人的生活就过得紧巴巴的,于是一些人就想到了去摆地摊赚钱。但是没手艺,没口才,也没有过多的启动资金,可以做什么地摊生意比较好呢?我的老粉丝朋友应该知道,以前我给大家分享过很多地摊项目,比如:卖鲁班飞鸟、神奇水宝宝、飞天仙女、袜子、老花镜、生活用纸、手机贴膜等等。 有一些粉丝朋友看了我的这些文章…

    2022-06-06 投稿
  • 淘宝付邮试用,淘宝付邮试用期多久

    《淘宝付邮试用:一种独特的购物体验》 在如今的电商时代,淘宝作为国内最大的购物平台之一,不断推出各种新颖的活动和服务,以吸引消费者的关注和参与。 其中,淘宝付邮试用就是一项备受瞩目的活动。 那么,什么是淘宝付邮试用?它有哪些特点和优势?对于消费者和商家来说,又意味着什么呢?接下来,我们将深入探讨淘宝付邮试用这个话题。 一、淘宝付邮试用的定义和基本流程 淘宝付…

    2025-06-10
  • 陕西省人事厅网站最新政策法规发布

    各市(区)人力资源社会保障局,省级有关部门,有关行业组织: 根据人力资源社会保障部《关于开展技术技能类“山寨证书”专项治理工作的通知》(人社部函〔2022〕25号)要求,决定在我省开展技术技能类“山寨证书”专项治理工作。现将有关事项通知如下。 一、专项治理范围和内容 专项治理的范围和内容是,面向社会开展的与技能人员和专业技术人员相关(以下简称技术技能类)的培…

    2023-06-04
  • 烤箱烤鱼温度和时间(烤箱烤鱼上下火一起烤吗)

    做烤鱼而言,鱼要薄一些,这样既能腌制入味,又能尽快烤熟。就鱼类而言,淡水鱼选草鱼,海水鱼选带鱼、面包鱼、偏口鱼和鱿鱼都可以。那烤箱烤鱼的温度和时间设定是怎样的呢?   烤箱烤鱼的温度和时间 将鱼洗净,从腹部到头部一开为二,背部相连。用盐、料酒、花椒面、胡椒粉葱段、姜片、蒜瓣涂抹鱼身腌渍入味(打开烤箱上下火,200度提前预热);将鱼放入烤盘,200度…

    2022-05-12