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)

相关推荐

  • html模板网站有哪些 html模板免费下载

    手机app模板jquery交互页面,网站模板html源码在线下载,通用的生活类手机app商城网站模板(原创)内嵌h5包含个人中心所有的页面 首页商品分类,商品详情,购物车,结算,地址,新增地址,所有相关的UI交互,以及登录注册页面,红包功能,分类,最新上架,团购,签到,订单管理。 下载地址:http://588sucai.com/0311.html

    2023-04-05
  • 联想thinkpad几个系列的定位,thinkpad系列有哪些

    在2017-2018年间,ThinkPad大家庭又新增了几名成员,从移动工作站到轻薄便携本,从17.3英寸的P71到12.5英寸的X280,丰富的产品线可以满足各类用户的使用需求,为了能够让小伙伴对Think产品线有清晰的认识,苦哈梳理了ThinkPad最新产品系列定位,我们一起来看看吧。巨匠P系列:让专业移动工作站,经得起持久战。 ThinkPad P71…

    2023-06-23 投稿
  • 不充钱的网页游戏(不花钱的网页游戏推荐)

    4399、7k7k等网页游戏笔者相信应该是很多人的回忆,虽然现在回头看,很多我们的回忆可能存在着大量盗版、质量低下、同质化的内容,但就是那种简单的小游戏带来的纯粹的快乐,成为了很多人不会忘记的东西。 近日一款来自古早网页放置游戏的Steam游戏上线后迅速就登上了Steam趋势榜的第一,在Steam收获了1414名玩家98%的好评。截至完稿时游戏的同时在线人数…

    2021-12-30 投稿
  • 外国人永久居留投票,外国人怎样取得中国永久居留

    由于不可控原因,上篇文章被XX,打扰大家了,再发一次 一边是实行了30多年的计划生育,一边是外国人永久居留。 文末投票,表达您的建议。  

    2023-06-25 投稿
  • 荣耀x30手机怎么样?荣耀x30和荣耀50对比哪个好

    荣耀X30以及荣耀50是以及荣耀60是目前荣耀家族中的两款明星产品,那么这两款产品作为消费者应该如何选择?本文就来一探究竟。 我们先来看配置上的差别: 差别1:处理器。 荣耀X30配备的处理器是骁龙695处理器,6nm工艺,也是高通最新的入门级处理器之一。而荣耀50配备的处理器则是骁龙778G,骁龙778G和骁龙695G,从名字上就能看出这两款芯片的差异。 …

    2022-03-15 投稿
  • 关于香料的种类来源(仲巴活佛仁波切)

    关于香料的种类来源相当的多,主要是取自于植物或动物,都因为它们本身所具有的独特香气,因而被称为香料,而在这些具有香气的香材中有四大名香之称的是沉檀龙麝; 沉香,又名「沉水香」,「水沉香」,在古代的古语中写作「沈香」(沈,同沉), 这里有个概念容易混淆,就是沉水和水沉是不同的; “水沉”是简单的说是在水里或者沼泽里结成的。而“沉水”是此香的含油量已达到可以沉到…

    2022-01-17 投稿
  • 锅包肉用的什么淀粉(锅包肉用啥淀粉好)

    导读:淀粉选错了,锅包肉就不可能外焦里嫩,记住这5点,厨师也佩服 大家好,我是今天菜不咸,我们一直在研究美食的路上。 锅包肉在东北菜中属于畅销品,可以说人人皆爱,在东北菜品类里占据着重要的位置,甚至一提起东北菜首先想到的就是这道菜,因其焦焦脆脆的口感,酸酸甜甜的味道,总是那么让人回味,念念不忘。 在哈尔滨,锅包肉也被称为女士菜,为什么叫女士菜呢?因为大多数女…

    2022-05-07 投稿
  • 三本院校的排名2021(全国有实力的三本院校)

    大家好,我是清华大学的宇阳,在校业余时间兼职家教,并用过来人的经验,陆续帮助了许许多多名高中生,走出迷茫! 其实,很多童鞋的原因,无外乎上课听不懂、下课学不会,没有掌握正确的学习方法,陷入无论多努力,就是学不会的恶性循环怪圈!师姐每日都会分享学习技巧、经验方法、励志故事等!希望能够帮助,那些渴望提高的童鞋!   虽然说现在二本跟三本已经合并了,但想…

    2022-01-04
  • 新手做淘宝客全流程(淘宝客怎么做详细教程)

    这几天也在头条上面刷到一些做淘宝客的文章或者视频,看着每天大几百的收益,无论哪个工薪阶层都会心动的。 但是那些人只会讲到一点点,就让你加微信或者私信,然后让你花钱买他的教学资料,其实都是假的。那些人大部分自己没赚到钱,只是发一些假的照片让你加入他的团队而已。   搜索栏   其实只要你有资源,朋友多,微信群多,就可以自己一个人操作。 下面…

    2022-06-06 投稿
  • 最孤独的奥运冠军事后教练怎么处理,运动员王丽萍事件教练处理结果

    2000年悉尼奥运会赛场,却有这么一位来自中国的奥运冠军,她拿到了中国在奥运当时田径赛场上一块“最为艰难、最不可能”的金牌。 可没有人为她祝贺…… 甚至于说,当她夺冠后就连披在身上的国旗都没有,只能是掩面哭泣在赛场上走完一圈;教练组人员早已撤离,只剩她一人在场上拼搏…… 她就是来自中国的奥运健儿“王丽萍”,同样她也是悉尼奥运会女子竞走20公里项目的冠军。 不…

    2022-03-15 投稿
  • 网络信息关键词的特点(关键词具有什么特点)

    1、查找量小 长尾词它决定了不可能每天都有大量的索引量像方针关键词,有时长尾词更像是一个人的思想,每个人的思想是不同的,或许在不同的时刻考虑相同的问题,查找的词会不同,查找量小。 2、查找频率不稳定 这个词有可能两天查找一次,或许一年只查找一次,甚至几年查找一次,所以它的查找频率非常不稳定。 3、针对性较强 长尾关键词的针对性特别强,给我们举一个例如:如核心…

    2022-03-12
  • 楚汉骄雄戚姬(楚汉骄雄戚姬演员)

        香港TVB捧红了无数男女,很多一线小生花旦成名后代言不断曝光率很高,也有很多二线演员或龙套人物演了几部戏后便销声匿迹,不再出现。下面就跟着小编一起来看看那些曾经眼熟的TVB花旦们的现状吧。   陈少霞     热播的笑傲江湖,让小编想起了吕颂贤版的,里面的岳林姗就是上图陈少霞扮演的。她在无线期间曾饰演…

    2022-01-14 投稿