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)

相关推荐

  • 体温计的使用方法(体温计的使用方法和注意事项)

    水银体温计还能继续使用吗?耳温枪、电子体温计的正确使用方式又有哪些?详见↓ 水银体温计还要继续使用吗? 水银体温计一不小心甩到地上,里面的水银就会漏出来,挥发到空气中; 有些小朋友在量口表时,也可能把体温计咬碎; 当汞挥发到空气中,容易通过呼吸道和消化道进入人体,刺激到黏膜,引起恶心、腹泻、腹痛等不良反应; 若一次性吸入的量过多,甚至会导致中毒、窒息,威胁到…

    2021-12-02
  • 干洗店生意怎么样?干洗店的利润前景到底如何

    经常有人问一家干洗店的利润从哪来,利润是你在你解决顾客需求获得相对应的报酬,那么顾客为什么选择在干洗店洗衣服,目的非常简单用你的服务将他的衣物处理的干净整洁。可是干洗店对衣服的处理难免会出现差错,小细节的失误可能会导致整个处理的过程,当你能解决的很好有笼络顾客变成你长期的老用户,以此看细节决定成败用在干洗店非常合适。那么干洗店的利润前景到底如何呢。 干洗店的…

    2023-01-30
  • 陈冠希前女友杨永晴传婚讯,曾微博示爱相恋5年,今33岁终嫁他人

    陈冠希前女友杨永晴传婚讯,曾微博示爱相恋5年,今33岁终嫁他人陈冠希前女友杨永晴传婚讯,曾微博示爱相恋5年,今33岁终嫁他人陈冠希前女友杨永晴传婚讯,曾微博示爱相恋5年,今33岁终嫁他人陈冠希前女友杨永晴传婚讯,曾微博示爱相恋5年,今33岁终嫁他人

    近日,陈冠希前女友杨永晴被曝下月将举办婚宴。 随后她的父亲杨超成也证实了此事。 “多谢了,是下个月办婚宴,女婿很好很疼我女儿,他们很低调,我就不多说了!”   虽然陈冠希的绯闻女友很多,但唯一公开承认的却只有杨永晴。 杨永晴是富商杨超成的女儿,杨受成的侄女,万贯缠腰是一位富家女。 陈冠希与杨永晴于2006年开始拍拖,陈冠希也当众宣布,这次感情十分认…

    2022-04-27 投稿
  • 治疗鼻炎小偏方,过敏性鼻炎中医偏方

    治疗鼻炎小偏方,过敏性鼻炎中医偏方治疗鼻炎小偏方,过敏性鼻炎中医偏方治疗鼻炎小偏方,过敏性鼻炎中医偏方治疗鼻炎小偏方,过敏性鼻炎中医偏方

    春季草木萌动,百草新生,大地草绿如茵,繁花似锦,可谓春风得意正当时!然而许多鼻塞、鼻痒、流涕等等鼻部疾病往往会打乱了春季的色彩!是感冒,还是过敏性鼻炎?为何吃药不管用?下面小编带您走进过敏性鼻炎的世界。 过敏性鼻炎有哪些症状呢? 过敏性鼻炎好发于冬春时节,典型症状: 1.鼻痒,打喷嚏,每天数次,多在早晚或接触过敏原后发作; 2.清水样鼻涕(有时可不自觉从鼻孔…

    2023-07-09 投稿
  • 友情链接买卖,建设友情链接的有效方法

    友情链接买卖,建设友情链接的有效方法友情链接买卖,建设友情链接的有效方法友情链接买卖,建设友情链接的有效方法友情链接买卖,建设友情链接的有效方法

    悦然网络工作室之前给大家分享了一个网站友情链接建设教程专题,详细给大家讲解了网站友情链接建设与注意事项,希望能够对大家的网站运营和SEO优化有所帮助。今天我们再给大家补充一个知识点,关于友情链接买卖的!   大多数企业网站建设好后,都想很快的把网站运营好,所以他们在交换友情链接的过程中也比较急切,甚至不惜花钱去买!而大多数人一旦购买链接,那就必定踩…

    2022-04-22 SEO优化
  • 在家里做手工赚钱好项目(在家做小手工赚钱)

    哈喽,大家好!我是语晨。点击右上方的“关注”,每周为你分享一本书,持续为您分享自媒体写作干货和个人成长。 最近听到一段语录,太心疼了! 这段语录把全职宝妈们的生活现状和苦闷,真实地展现了出来。 “两个孩子都上学了,你为什么还不去上班? 我为什么不去上班?因为我的孩子没人接,放假了没人管,生病了没有人照顾。 所以,实在找不到朝九晚四的工作,也找不到有双休,随时…

    2023-02-04
  • 网店如何快速获取客户流量

    网店如何快速获取客户流量网店如何快速获取客户流量网店如何快速获取客户流量网店如何快速获取客户流量

    最近一些商家找我交流,大部分的店铺流量和转化都比较差,搜索流量少。要知道,权重低的话,那么对于流量和转化的影响是非常大的,所以在平时优化操作的时候,我们要持续提高权重,带动整体数据的表现。 尤其是对于一些细节性方面,处理的不好,那么就要吃亏了,优化搜索排名,优化权重,提升店铺,需要深思的是,细节决定了店铺的提升和成败,这是现实。 一、店铺权重 (1)DSR评…

    2022-06-04 投稿
  • 微信注册账号(微信注册账号需要辅助验证怎么办)

    我原以为,申请好个人微信公众号后,只要会写文章就可以了,其实不然,没有那么简单。 通过这段时间的操作,我总结了一下,微信公众号注册前后的操作方法: 第一,注册前先起好“账号名称”,想好简介怎么写,选哪一个公众号类型。 我注册前都不懂这些,1月中旬的一天,半夜睡不着,就躺在床上用手机注册,账号名称随便起一个,就是“海玲生活写意”,各取老公和我名字的一个字,简介…

    2023-05-24
  • 口碑最好的护肤品(补水护肤品十大排名)

    口碑最好的护肤品(补水护肤品十大排名)口碑最好的护肤品(补水护肤品十大排名)口碑最好的护肤品(补水护肤品十大排名)口碑最好的护肤品(补水护肤品十大排名)

    补水绝对是一个非常永恒的改善皮肤的话题。几乎所有的小伙伴都面临着皮肤缺水的问题,那么什么样的补水产品效果更好呢?国产护肤品效果好,有特色,性价比非常高,所以很受人们的喜爱。以下是小编整理的的国内补水护肤品十大榜单。大家一起参考一下。   启初婴儿保湿霜 含有初生胚米的丰富营养,带来比大米更多的益肤成分。产品线以乳液和面霜为主。刚用于儿童,真的很好用…

    2021-12-22 投稿
  • 短视频脚本文案模板 怎么写一个简单的脚本

    一个短视频能不能爆火的关键因素在于脚本,脚本是短视频创作的奠基石。那么,短视频脚本应该怎么写呢?其实,掌握这5个步骤就能够轻松打造,新手也能打造爆款: 1、框架搭建、拟大纲 搭建框架很重要,框架的搭建就知道后面的内容导向。学会搭建框架十分重要,在搭建框架的时候,就要考虑多方面的因素,这样就能够保证后续脚本的顺利开展。 2、明确主题 在构思内容之前,需要明确文…

    2023-04-10
  • 怎么看朋友圈偷偷访客记录(朋友圈怎么看访客记录方法)

    怎么看朋友圈偷偷访客记录(朋友圈怎么看访客记录方法)怎么看朋友圈偷偷访客记录(朋友圈怎么看访客记录方法)怎么看朋友圈偷偷访客记录(朋友圈怎么看访客记录方法)怎么看朋友圈偷偷访客记录(朋友圈怎么看访客记录方法)

    前段时间,iOS系统提前更新了8.0版本,这让安卓用户非常不满。满世界的苹果用户都在体验微信的新功能,只有安卓用户一脸懵,好在安卓系统的用户终于等到了。微信每一次的更新都是影响重大的,因为在微信的背后是12亿的用户。那么这次微信8.0.1一点也不简单!下面就来解析一下新功能!   第一:”访客记录“ 对于微信用户来讲,对于访客记录是非常排斥的,特别…

    2021-12-26 投稿
  • 移动怎么取消gprs,移动怎么取消套餐发送指令

    1.发送CXBX到10086,查询当月套餐剩余短信条数。 2.发送CXGFX到10086,查询当月飞信GPRS套餐剩余流量。 3.发送CXGTC到10086,查询当月GPRS套餐剩余流量。 4.发送CXCCT到10086,查询当月超级畅听套餐剩余流量。 5.发送CXGLL到10086,查询当月已使用的GPRS流量总和。 6.发送CXDX120,查询当月可选计…

    2022-05-03