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)

相关推荐

  • thinkpade420内存条型号,thinkpad笔记本各系列区别

    联想的THINKPAD E系列一向都是属于THINPAD家族中较低价格的产品,在2012年,笔者购置了这款笔记本电脑用做办公。这款笔记本电脑使用的是14寸1366×768的分辨率的屏幕,i5 2450M处理器,2G的DDR3内存,500G 5400转硬盘,显卡是英特尔的集成显卡+AMD的6470M独立显卡,当时笔者就在经销商处又增加了2G的内存。 这款笔记本…

    2023-06-28 投稿
  • 微信直播间怎么开通卖货(微信直播如何开通卖货)

    作为国内首屈一指的社交平台,微信的用户可以用海量来形容了,与很多社交软件不同,微信用户覆盖的年龄段更高,上至七八十岁的老人,下至十来岁甚至几岁的孩子,都拥有自己的微信号,也正因为如此,微信也成为了很多商家的必争之地。这不,微信直播刚刚开通不久,各大商家就争先恐后的在微信上开通了自己的直播间。那么你知道微信直播间怎么卖货吗?   一、如何开通微信直播…

    2021-12-22
  • 民航机长年薪,行员和空姐的真实收入

    在外行看来,飞行员和空姐都是头顶光环的工作人员,身穿靓丽的制服到处飞,可以到处玩耍,工作之余顺便旅游,而且还收入不菲,那事实到底是怎样的呢?今天小编就带大家揭秘飞行员和空姐的真实收入! 飞行员收入 飞行员工资主要由基本工资和飞行小时费组成,具体收入水平每个航空公司有一定差距,一般三大航(国行,南航,东航)的机长每月综合收入5到8万,副驾驶2到3万,差异主要是…

    2023-02-16
  • 净化的灵魂痕迹(净化的灵魂痕迹现在有什么用)

    当初我为了做里面的称号,每当开启就会去打!但是那时候毕竟还在上学,就没办法每次都上线去打。 当时的守护者祭坛的开放时间: 普通奖励: 在守护者祭坛中获得胜利可以获得丰厚的奖励。 在每次获得胜利后,玩家可以获得固定的三种奖励,包括:增加10万经验书、遗落的高级袖珍罐、净化的灵魂痕迹。 根据玩家所挑战的层数和难度的不同,获得以上三种奖励的数量也不同。 在无限模式…

    2022-01-21 投稿
  • f2f是什么意思的缩写(f2c什么意思)

    文章由我家更美平台原创编辑。 F2C是最近经常听到的一个词汇,那它是什么意思呢?F2C对家具行业会产生什么影响呢? F2C,F,factory,指的是工厂,C,consumer,指的是消费者,F2C意为从工厂直接到消费者,是一种两者之间快速的直达关系,也是目前一种比较先进的商业模式。 传统的商业链条存在很多节点,一般情况是:工厂——品牌公司——总代理商——经…

    2023-01-16
  • 什么小游戏能一天赚100块钱?一天赚100左右游戏

    五一小长假来临,你准备怎么玩?是游览各地名胜古迹,体验祖国的大好河山,还是去海滨城市度假,享受夏季的清凉,或是亲朋齐聚,闹市赶海,在市内休闲个痛快?近日,嘀嗒出行 “大转盘”抽奖游戏火热上线,每天最高可提现100元,让你轻松赚足五一吃喝玩乐的零花钱。 大转盘抽奖,现金赚不停 打开嘀嗒出行App,进入“100元现金”活动专区。游戏形式为大转盘抽奖,本次活动奖品…

    2022-04-20
  • 形容漫天要价的成语(漫天要价坐地还价)

    麻雀爱叫,老鼠爱闹】 比喻人各有特点。 【麻雀飞过也有影子】 比喻人无论做了什么事情,总会留下痕迹。 也作①麻雀飞过都有个影子。 ②麻雀飞过还留个影。 【麻雀虽多,怎抵得大鹏展翅】 比喻才能一般的人再多也不如一个杰出人才的作用大。 【麻雀虽小,五脏俱全】 比喻有些事物规模虽小,但它本身的组织结构却是比较完整的,能反映事物的基本情况。 也作①麻雀虽小,肝胆俱全…

    2022-01-02
  • 安发国际奖金制度,注册安全工程师执业资格证书编号

    近日,浏阳市人民政府发布《关于鼓励应急系统工作人员和企业“三项岗位人员”考取注册安全工程师执业资格的通知》,通知中明确: 2021年1月1日以后取得《注册安全工程师执业资格证书》的应急系统工作人员每人一次性奖励人民币2000元。 对取得注安师证的烟花爆竹、矿山、危险化学品行业企业“三项岗位人员”每人一次性奖励人民币1000元。 通知原文 关于鼓励应急系统工作…

    2023-06-03
  • 初始化网卡信息失败,linux无盘工作站搭建

    我打算让 volumio 运行在我 2009 年购买的老爷机笔记本上,也让它发挥一点余温热。正常操作是将 volumio 的系统镜像刷到 U 盘上,连接电脑后使用 U 盘启动系统即可。但是家里没有找到合适的 U 盘(穷~~),加上前段时间听了同事关于 linux 内核的分享,感慨自己对系统的理解不够。因此我决定使用无盘启动 volumio 顺便研究一下 li…

    2023-07-10
  • 淘宝**表,淘宝**示意图

    《淘宝**表:从新手到资深的进阶之路》 在淘宝的世界里,**表就像是一座神秘的阶梯,引导着每一位卖家和买家在购物的海洋中不断探索和成长。 它不仅仅是一个简单的标识,更是反映了用户在淘宝平台上的活跃度、信誉度以及消费行为等多个方面的综合体现。 那么,淘宝**表究竟是如何构成的呢?它又对我们的购物和卖家生涯有着怎样的影响呢?让我们一起来揭开淘宝**表的神秘面纱。…

    2025-06-16
  • 大数据营销公司(大数据营销公司,让客户主动找你!)

    大数据获客平台哪个好   寻找客户资源是每个企业销售部门最重要的业务,一个良好的客户获取平台可以帮助企业快速、全面地获取客户的相关信息,客户获取软件的选择标准是什么?   今天是大数据智能的时代,市场上有各种各样的客户获取软件,一个好的客户获取平台可以帮助企业快速、全面地获取客户的相关信息,也可以帮助企业降低营销成本。   大数据获客平台哪个好,如何选择一家…

    2023-04-03
  • 网站如何赚钱(做一个网站如何赚钱)

    一个互联网产品能否盈利,即自我造血是很关键的,是投资人一般上来就会问的问题。   不仅仅是互联网,其实对于我们来说,只要能熟悉一个行业的商业模式,就拥有了自我创业的一个基石。所以,想要创业,或者对互联网行业如何赚钱感兴趣的,可以接着往下读。   这篇文字,很简单。真的,看几个图大致就了解了。 第一种:广告 1、搜索广告   嗯,…

    2022-01-21 投稿