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)

相关推荐

  • 核酸检测多长时间传到网上(核酸检测结果多久网上能查出来)

    当前,郑州市1260万人全员核酸检测刚刚接近尾声,二七区已开展第二轮核酸检测。 核酸检测报告成为大家最关注的热点,有的人想第一时间知道结果,有的人着急出差,急着快速拿到报告。 那么,从核酸检测采集点到核酸报告出炉,要经历哪些环节?猛犸新闻•东方今报记者第一时间带大家探访河南省内多家核酸实验室,并带大家走进实验室,近距离了解核酸检测全过程。   他(…

    2022-03-20 投稿
  • 怎样才能在网上赚钱(网上赚钱全攻略)

    年底了,今年你在互联网上赚了多少钱? 今天来和大家聊一下,在网上赚钱这件事,在我看来,想在在网上赚到钱必须具备以下五点。 1?流量思维 从接触网赚开始我知道了一个词,流量思维。 在这个什么都讲究快的时代,谁掌握了流量谁才是王道。谁拥有自己的流量池,谁才能赚到钱。 无论做任何产品,流量一定是第一位的。 2?营销思维 经常在超市里看到,加5块钱可以换到一瓶1.5…

    投稿 2022-01-21
  • 比价工具,哪个比价网好用

      互联网上,经常出现同一款商品,在不同平台之间有不同的价格。 我们可以通过比价网来查看不同平台的价格。本文介绍了全网排名前三的比价网站,以及如何找到、判断比价网站。 这是《搜商、搜索技巧》系列的第二篇学习笔记。 1.排名前3的比价网站 慢慢买:月访问量:120万 购物党: 月流量:130万 比一比价: 月访问量:17万 这些比价网站,除了比较各大…

    2023-07-10
  • 返利app怎么返利视频(返利app是真的还是假的)

    有太多的宝宝分不清楚返利机器人,也搞不懂哪些是纯返利的APP,哪些是返利APP,那么这篇文章,就带你们全面了解一下她们的前世今生吧。   一、返利机器人: 返利机器人:代表返利机器人,公众号、小程序之类的优惠券返利形式。比如查询下图这款蛋白粉。 产品名称:深谷溪田益生菌羊乳蛋白质粉儿童学生中老年人成人营养羊奶蛋白粉   复制产品链接到找到…

    2021-11-30 投稿
  • 新版鹿鼎记结局

    新《鹿鼎记》是由张一山饰演韦小宝这个角色。 这部剧从开播到结局一直都是差评不停歇,造成这样的原因不在乎于让人摸不着头脑的剪辑以及张一山猴式的表演。 最近的一条热搜就是关于,新版《鹿鼎记》韦小宝像猴子。这条热搜的大致内容是在讲张一山在采访时自嘲自己是属猴的,所以他演的韦小宝像个猴子,这是骨子里带的。 在这版《鹿鼎记》开播前和开播后,张一山的态度一直很谦逊,无论…

    2023-01-28 投稿
  • 君王2还能玩吗现在,君王2新版13.0上线时间曝光

    在《君王2》最近的12.0中,各色休闲玩法让玩家在竞技场激烈战斗之余,可以去农场中享受一番惬意的田园生活放松身心,但《君王2》毕竟是一款专注于玩家间激烈对抗的PVP大作,在全新的13.0资料片“全民竞技”中,竞技元素又将大放异彩! 有玩家就问了,13.0到底什么时候上线呢?人家等得好心焦呢!据官方透露,13.0制作已经进入最后冲刺阶段,将在1月中旬与玩家激情…

    2023-05-30 投稿
  • 傲天神剑,侠客风云传傲天神剑打造技巧

    武侠电影游戏中,总会有那么一把“叼炸天”的神兵利器,侠客风云传傲天神剑就是这么一把牛逼的武器,但是想得到它可不容易,制作更是难上加难。这里我们就给大家介绍下侠客风云传傲天神剑怎么制作。 神兵在此 首先是傲天神剑图纸获得方法,是在第三年年底的江湖最佳新人大赛里获胜就可以得到这张图纸。有了这图纸,“麻烦”就来了。 获胜后的奖励 制作材料主要是需要钛合金,为了降低…

    2023-06-27
  • 网络电视软件哪个好,免费的网络电视软件哪个好

    现在很多年强人对智能电视并不是刚需,他们往往只需要一台电脑就可以了,就算是只在电视台播放的精彩影视内容 ,也可以通过网络电视软件进行“直播+点播”进行观看,并且完全免费。那么有哪些好用的网络电视软件呢?下面就为大家介绍五款好用的网络电视软件。 1.腾讯视频 腾讯视频播放器是由腾讯公司开发的用于通过互联网进行大规模视频直播的软件。腾讯视频播放器采用了先进的P2…

    投稿 2022-04-24
  • 痤疮严重程度分类图片(痤疮有几种类型)

    痤疮是日常生活中常见的皮肤病,往往在年轻人脸上出现。痤疮是由于脸上油脂分泌较旺引起的,不仅会严重影响到患者的外形美观,而且会对身体健康造成一定的影响。   痤疮的类型有很多,每种痤疮的症状是不一样的,接下来就给大家介绍一下痤疮的症状有哪些? 痤疮的具体分类 1、丘疹性痤疮 这种痤疮的皮损就炎症性的小丘疹,这种小丘疹一般非常坚硬,就像小米至豌豆那么大…

    2022-03-19 投稿
  • 晋江签约作者一个月多少钱?谈谈对晋江的分析

    作为一名合格的扑街作者,晋江也是我头铁进军的一站,今天就来和大家谈谈对晋江的分析。 (来源于网络,侵权删) 3.对抄袭行为零容忍,打击力度大。 4.更新要求低,日更三千就及格,爆更当然更好。 5.文章上架快,一般7w字上架,10w字就能看出这篇文大概的发展,可以及时止损,试错周期短。 6.读者忠诚度高,愿意跟随作者到下一篇文,也愿意去看作者的旧文,也就是你有…

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

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

    2021-12-30 投稿
  • 万能接收器,万能接收器脚位

    《万能接收器:从概念到应用的探索之旅》 一、引言在科技的浩瀚海洋中,“万能接收器”仿佛是一颗璀璨的星辰,吸引着众多研究者的目光。它究竟是什么?真的能够实现“万能”的接收功能吗?这一系列的问题萦绕在我们心头,让我们忍不住想要深入探究一番。也许,它就像是一个神秘的魔法盒子,能够接收来自各个领域、各种频率的信号;又或许,它只是一个遥不可及的幻想,永远无法真正实现。…

    投稿 2025-10-06