本文主要是介绍限流、流量削峰思考,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
学MQ的时候,经常会有人拿秒杀这个场景去介绍流量削峰。这很好理解,将请求放到一个中转站去暂存,虽然生产者生产很快,但消费者可以慢慢去中转站获取。
关于限流,之前一直以为限流的思想类似MQ,不过是内存中的MQ,今天看了几种限流算法,发现限流和流量削峰有相似也有不同。
MQ的思想是用空间换时间差,生产者-消费者模型。
限流有几种算法:固定窗口算法、滑动窗口算法、漏桶算法、令牌桶算法。其中固定窗口、滑动窗口算法基于时间片流量控制,而漏桶和令牌桶算法与MQ的生产者-消费者-推拉模型相似。但是不能用空间换时间差相似的词来形容这两种算法,想想用空间整流不知道合不合适。
另外限流算法在限流过程中超过阈值会存在流量丢失的情况,MQ的流量丢失跟存储空间、持久化机制、消息投递的可靠性有关。
对于限流算法,我想关于流量丢失,应该也可以做出一些丢失的处理机制。
这篇关于限流、流量削峰思考的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!