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)

相关推荐

  • 微信朋友圈怎么推广(朋友圈推广平台)

    微信附近推广告介绍 本地商户对门店周边人群有较强的曝光引客需求,但往往很难实现精准触达,更面临传统地推难、其它形式费用高、营销流程繁琐、耗时费力等难点。 所以 一款面向线下门店客户的营销解决方案,支持获取销售线索 和发放优惠凭证两条营销链路的营销模式出现了,可满足商家小预算、低成本、简单操作、持续不断曝光引流的推广诉求。 1、小金额大价值,朋友圈广告长期在线…

    2021-12-01 投稿
  • ssl加速,SSL**流量复制

    《关于SSL加速的深入探讨》 一、SSL加速的基本概念 SSL(SecureSocketsLayer)即安全套接层,它是一种用于在网络通信中提供加密和身份验证的协议。简单来说,它就像是网络通信的一把“锁”,能确保数据在传输过程中不被窃取、篡改或冒充。而SSL加速呢,也许就是通过一些技术手段,让这把“锁”更快地发挥作用,提高网络通信的效率。 我觉得就好像我们平…

    投稿 2025-08-15
  • 建筑垃圾再生利用项目怎么样?

    建筑垃圾被两辆大型铲车铲到喂料池内,不一会儿,不同大小规格的粒状骨料从不同出口吐出来,将成为可再利用资源。1月6日,太平街道肖泉村建筑垃圾资源化再生利用项目现场,肖泉城中村改造拆下来的建筑垃圾被源源不断地送进这台庞然大物里。 这台长三四十米、靠多条长短不同的传输槽连接的“大家伙”,就是建筑垃圾粉碎机,是由市城发集团投入建设、今年年初刚投入运行的肖泉村资源化再…

    投稿 2022-06-10
  • wow点卡涨价(wow点卡价格)

    一直以来,魔兽世界全新的点卡收费制度饱受各种苟评,既有魔兽世界休闲党抱怨、亦有肝肝党的庆幸。一个月75元的价格,折合下来就是2.5元一天,但是好是坏,是贵是贱,大家也是各说各的理由。而今天,魔兽世界在本月推出了全新的充值优惠活动,活动有二: 活动①:从未充值过魔兽世界点卡的玩家首度充值享受超额优惠,优惠的力度有多大呢?原价75现价30,如果你足够运气的话,你…

    2022-01-21
  • 生化危机5最终boss,生化危机游戏系列介绍

    《生化危机》游戏系列里,有许多压迫感十足的BOSS,战斗还没开始人就已经慌了,令人记忆犹新。 这当中既有面目狰狞,给玩家造成心灵冲击的BOSS;又有身怀一击必杀绝招,让玩家噤若寒蝉的BOSS;甚至还有怎么打都打不死,将主角逼入绝境的BOSS。每每想起,仍心有余悸。 本期便来盘点其中的几个BOSS,不知是否会勾起您一番惊心动魄的回忆? 《生化危机4》—U3 U…

    2023-05-29 投稿
  • ftp免费空间,ftp server软件

    《关于ftp免费空间的探索与思考》 一、ftp免费空间的基本概念 也许在很多人眼中,ftp免费空间是一个比较陌生的词汇。它到底是什么呢?简单来说,ftp(FileTransferProtocol)即文件传输协议,而ftp免费空间就是提供给用户用于存储和传输文件的免费存储空间。就好像我们日常生活中的一个大柜子,我们可以把各种文件像物品一样存放在这个柜子里,然后…

    2025-08-24
  • 电商sku是什么意思(电子商务sku是什么意思)

    无论是国内电商还是国外电商,无论是电商平台还是ERP,OMS还是WMS,都离不开对产品(商品)的管理,也就是对SKU的管理。SKU是Stock Keeping Unit(最小存货单位),可以通俗理解为对商品的最小化粒度管理。例如一瓶水,一台手机,一件衣服,一支笔等,都会有对应的SKU编码来进行标识,便于系统数据流转时的管理,也便于日常业务作业的管理。在SKU…

    2021-12-16
  • 淘宝天天特价网址,2020年淘宝天天特价入口

    《淘宝天天特价网址:探索淘宝的超值特惠之旅》 在如今的电商时代,淘宝作为国内最大的在线购物平台,每天都有各种各样的活动和优惠等待着消费者。 其中,淘宝天天特价无疑是一个备受关注的板块,它以超低的价格和丰富的商品种类吸引了无数消费者的目光。 那么,淘宝天天特价的网址究竟是什么呢?让我们一起踏上探索淘宝超值特惠之旅的征程吧。 一、淘宝天天特价的简介 淘宝天天特价…

    投稿 2025-04-18
  • 物联卡是没有保障的,商家随时跑路了

      最近好多小伙伴反馈,有的商家宣传他家的卡流量无限用,随充随用,甚至还赠送一年的会员,这到底是真的吗? 这样的套路现在很多,这些卡就是物联卡,很多小伙伴还不相信,总以为自己捡到了大便宜,可以填上哪有掉馅饼的事呢? 物联卡的特点就是不能打电话、不能发短信、没有11位手机号,无法登录官方营业厅等等,最重要的还是充值了,如果是使用物联卡的小伙伴,都只能…

    投稿 2023-06-14
  • 经典火爆电影(今年火爆的电影有哪些)

    1、《第一滴血》;最近重温了一下这个**战狼系列电影,作为魂斗罗的原型,蓝波确实有bug的一面,能够自愈伤口,自动闪避炮火,但是一想到这是1982拍的电影,也算影响了几代中国人,毕竟自己小时候也模仿过蓝波开枪和玩刀的动作,也算是对第一滴血的传承。 2、《墨西哥往事》;不是第一次看,人物仍没分清,可能是我脸盲且记忆力差。喜欢这浮夸的调调,算是黑色幽默,也可以当…

    2023-06-01 投稿
  • 电信5g流量卡纯流量卡(低月租流量卡选哪个运营商好)

    电信看来被联通29元203G+200分钟大流量低月租神卡打怕了,连续推出19元,更低月租的大流量套餐卡!     下面介绍几款超乎常态的低月租大流量神卡!   第一款,电信千慧卡,两年内最高,注意是最高19元月租,最高165G大流量! 首月免月租, 2-6月9元包135G通用流量+30G定向流量。 7-12月=19元包135G通…

    2023-06-12
  • 开玩具店需要准备什么东西(开玩具店新手注意)

    儿童玩具是孩子童年生活中必不可少的一部分。现在“二孩政策”的落实让儿童玩具市场前景一片光明,在互联网电子商务竞争如此激烈的环境下,线下实体店也在迅速扩张。更多的消费者愿意相信眼前看得见、摸得到的商品。那么要如何开一家儿童玩具店呢?开儿童玩具店需要准备哪些呢? 1、充足的资金。任何一家实体店的开业都要面临相应的风险,有充足的资金周转才能守得云开见月明。 2、合…

    2021-11-29