首页 > 其他分享 >分布式环境下流控技术汇总

分布式环境下流控技术汇总

时间:2024-01-21 15:32:33浏览次数:27  
标签:下流 窗口 汇总 流量 并发 算法 支付 分布式

本篇主要是对分布式环境流控技术及使用场景做个简要的汇总,包括:固定时间窗口算法,滑动时间窗口算法,漏桶算法,令牌桶算法,分布式消息中间件,流控与熔断利器Sentinel。

1. 前言

在流量控制系列文章中的前六篇,分别介绍了固定时间窗口算法、滑动时间窗口算法、漏桶原理、令牌桶、消息中间件、Sentinel如何应用到分布式环境下的流量与并发控制。

这里再次对这几个做一个简单回顾,知道工具箱里面的不同工具的特性,才能更好更快地干活。

2. 固定时间窗口算法

分布式环境下流控技术汇总_分布式消息

固定窗口:算法简单,对突然流量响应不够灵活。超过流量的会直接拒绝,通常用于限流。

详见:《精确掌控并发:固定时间窗口算法在分布式环境下并发流量控制的设计与实现》

3. 滑动时间窗口算法

分布式环境下流控技术汇总_系统设计_02

滑动窗口: 算法简单,对突然流量响应比固定窗口灵活。超过流量的会直接拒绝,通常用于限流。

详见:《精确掌控并发:滑动时间窗口算法在分布式环境下并发流量控制的设计与实现》

4. 漏桶算法

分布式环境下流控技术汇总_系统设计_03

漏桶算法:在固定窗口的基础之上,使用队列缓冲流量。提供了稳定的流量输出,适用于对流量平滑性有严格要求的场景。

详见:《精确掌控并发:漏桶算法在分布式环境下并发流量控制的设计与实现》

5. 令牌桶算法

分布式环境下流控技术汇总_系统设计_04

令牌桶算法:在滑动窗口的基础之上,使用队列缓冲流量。提供了稳定的流量输出,且能应对突发流量。

详见:《精确掌控并发:令牌桶算法在分布式环境下并发流量控制的设计与实现》

6. 分布式消息中间件

分布式环境下流控技术汇总_流控_05

分布式环境下流控技术汇总_分布式消息_06

分布式消息中间件:在支付场景的削峰填谷用得比较多,且对精度没有那么苛刻的场景。以及应用间的解耦。

详见:《削峰填谷与应用间解耦:分布式消息中间件在分布式环境下并发流量控制的应用》

7. 流控与熔断利器Sentinel

分布式环境下流控技术汇总_流控_07

Sentinel:分布式场景下的流量控制和熔断机制利器。

详见:《流量控制与熔断利器:Sentinel介绍》

8. 方案选型

限流和熔断保护:Sentinel。

削峰填谷和应用间解耦:消息中间件。

极低并发要求:自己使用redis实现漏桶或令牌桶。

想手撸一段代码测试:固定时间窗口和滑动时间窗口。

实际上,自己实现的固定时间窗口或滑动时间窗口,还可以加上一些其它技术,解决一些其它的问题,比如渠道自动开关。这个后面单独开文章介绍。

9. 结束语

这7篇文章对流控的原理、实现方案、应用场景分别做了详细的描述,应对绝大部分的支付系统,是绰绰有余的。哪怕中国TOP2的支付公司,内部的使用也差不多是这样,只是部署集群的规模更大,对稳定性的要求更高,对应地附加了很多其它保障手段。

这是《百图解码支付系统设计与实现》专栏系列文章中的第(20)篇,也是流量控制系列的第(7)篇。点击上方关注,深入了解支付系统的方方面面。

10.精选

专栏地址百图解码支付系统设计与实现

《百图解码支付系统设计与实现》专栏介绍

《百图解码支付系统设计与实现》专栏大纲及文章链接汇总

领域相关(部分)

支付行业黑话:支付系统必知术语一网打尽

跟着图走,学支付:在线支付系统设计的图解教程

图解收单平台:打造商户收款的高效之道

图解结算平台:准确高效给商户结款

图解收银台:支付系统承上启下的关键应用

图解支付引擎:资产流动的枢纽

图解渠道网关:不只是对接渠道的接口(一)

技术专题(部分)

交易流水号的艺术:掌握支付系统的业务ID生成指南

揭密支付安全:为什么你的交易无法被篡改

金融密语:揭秘支付系统的加解密艺术

支付系统日志设计完全指南:构建高效监控和问题排查体系的关键基石

避免重复扣款:分布式支付系统的幂等性原理与实践

支付系统的心脏:简洁而精妙的状态机设计与核心代码实现

精确掌控并发:固定时间窗口算法在分布式环境下并发流量控制的设计与实现

精确掌控并发:滑动时间窗口算法在分布式环境下并发流量控制的设计与实现

标签:下流,窗口,汇总,流量,并发,算法,支付,分布式
From: https://blog.51cto.com/u_16485618/9355513

相关文章

  • 最近见到的 trick 汇总
    见到啥写啥吧qwq历年省选/NOI/NOIP/其他官方考试已经标出。OEIS把样例粘贴到OEIS上。www.oeis.org怎么你了。CF1916H1/H2数学容斥原理求解问题。\[|S_1\cupS_2\cup\cdots\cupS_n|=\sum_{i=1}^n|S_i|+\sum_{k=2}^n(-1)^{k-1}\sum_{1\leqi_1<i_2<\cdots<i_k\leqn}|S......
  • RAS非对称加密技术在分布式项目中的应用
    本文目录前言RSA非对称加密技术的定义RAS非对称加密技术使用场景RSA秘钥初始化秘钥初始化文件、加密、解密、获取秘钥文件工具类后端测试加密、解密公钥获取接口开发附页前端加密测试小咸鱼的技术窝前言这段时间一方面忙着毕业论文的事情,一边忙着工作上的事情,也是好久都没有动笔......
  • JavaScript保留字和预定义的全局变量及函数汇总
    保留字也称关键字,每种语言中都有该语言本身规定的一些关键字,这些关键字都是该语言的语法实现基础,JavaScript中规定了一些标识符作为现行版本的关键字或者将来版本中可能会用到的关键字,所以当我们定义标识符时就不能使用这些关键字了,下面介绍下JavaScript保留字和预定义的全局变量......
  • 中间件 ZK分布式专题与Dubbo微服务入门 4-15 acl的常用使用场景
    0课程地址https://coding.imooc.com/lesson/201.html#mid=12711 1重点关注1.1zk集群,主从节点,心跳机制(选举模式) 选举模式介绍1xx主节点(主人),yy和zz从节点(奴隶)2xx主节点挂掉了,yy和zz竞争当主人,结果zz成功上位,zz是主节点,yy是从节......
  • 搜索习题汇总
    搜索习题汇总1.[USACO1.4][IOI1994]时钟TheClocks题目描述考虑将如此安排在一个\(3\times3\)行列中的九个时钟:|-------||-------||-------|||||||||---o||---o||o||||||||-------......
  • 白嫖全网资源!免费资源汇总!太牛了!请偷偷收藏,你懂得!
    早几年,我们想在手机上搜索点内容简直是噩梦。使用夸克的原因:夸克网盘不容易河蟹,不像度娘疯起来根本分享不了。一些热门资源基本只有夸克能分享。在线观看电影、电视剧和综艺和动漫节目的app,提供了丰富的影视资源和便捷的观看体验,早阅读早享受!夸克是阿里旗下的一款智能搜索App。......
  • 削峰填谷与应用间解耦:分布式消息中间件在分布式环境下并发流量控制的应用
    这是《百图解码支付系统设计与实现》专栏系列文章中的第(18)篇,也是流量控制系列的第(4)篇。点击上方关注,深入了解支付系统的方方面面。本篇重点讲清楚分布式消息中间件的特点,常见消息中间件的简单对比,在支付系统的应用场景,比如削峰填谷,系统应用间的解耦,事务消息等。内容偏入门介绍,已经......
  • 原神汇总
    『你若困与无风之地,我便让全世界的风吹向你』\(\hspace{2cm}\)——温迪『故友的灵魂,就交给我吧』\(\hspace{2cm}\)——温迪『无念,无想』\(\hspace{2cm}\)——魔神任务第二章·第二幕「无念无想,泡影断灭」『当你重新踏上旅途之后,一定要记得旅途本身的意义』\(\hspace{2cm}......
  • AI深度解析:实时分布式消息平台NSQ
    NSQ是一个由Go语言编写的高性能、可扩展且易于部署的实时消息处理平台,专为大规模系统设计。在今天的微服务架构及云计算环境中,NSQ提供了一种优雅而强大的方式来进行异步通信和解耦服务。此篇文章旨在从多个角度深入分析NSQ,助你了解其工作原理、特点以及应用场景。工作原理NSQ遵......
  • 典型场景解析|PolarDB 分布式版如何支撑 SaaS 多租户?
    SaaS多租户背景 很多平台类应用或系统(如电商CRM平台、仓库订单平台等等),它们的服务模型是围绕用户维度(这里的用户维度可以是一个卖家或品牌,可以是一个仓库等)展开的。因此,这类型的平台业务,为了支持业务系统的水平扩展性,业务的数据库通常是按用户维度进行水平切分。 可是,当......