限流是对直播软件源码高并发访问进行限制、限速的过称,通过限流来限制资源,可以提高系统的稳定性和可靠性,控制系统的负载,削峰填谷,保证服务质量。常见的服务限流处理方式是拒绝服务、排队等待、服务降级,而限流可以分单机限流和分布式限流两种常见的。

打开网易新闻 查看精彩图片

一、单机限流

单机限流的表现形式较多,比如计数器、互动窗口、漏桶算法、令牌桶算法等。

1、计数器,取固定大小的时间窗口,并在每个窗口时间内限制请求数量。只需要记录一个计数器,并在每个时间窗口结束时将其重置为零。每当请求进入系统时,我们都会将计数器加一,并检查它是否超过了限制的阈值。

2、滑动窗口,将一个窗口分为若干个等分的小窗口,每个小窗口对应不同的时间点,拥有独立的计数器。当请求的时间点大于当前窗口的最大时间点时,则将窗口向前平移一个小窗口。如果请求数量超过了小窗口的限制的阈值,则决绝该请求。

3、漏桶算法,属于直播软件源码强制限制请求速率的方式,但存在两个缺点:无法应对正常的突发流量,无法有效利用资源。

二、分布式限流

常见是redis令牌桶。

打开网易新闻 查看精彩图片

三、两种限流方式的对比

1、单机限流在单机上运行性能好,状态稳定,但对直播软件源码这种直播互动平台来说,就不如分布式系统的限流了,如果分布式系统使用单纯的单机限流,开启HPA后流量会处于半失控状态,如果扩容整个集群限流就会变大,缩容整个集群限流就会变小。

2、已有的分布式限流方案需要每次/每批请求都需要请求“阈值管理者”单点,增加了服务端的网络开销和不稳定因素,“阈值管理者”的稳定性也是影响结果的一个重要因素。

两者各有优缺点,而直播软件源码需要的自然是两者结合的优点。

四、聚合查询限流

属于前两者的结合方案,优点在于它的限流功能依赖于负载均衡,而直播软件源码恰恰需要负载均衡的帮助,这样能在原本直播软件源码需要的功能之外再开辟新的功能,减少支出。

声明:以上内容为云豹科技作者本人原创,未经作者本人同意,禁止转载,否则将追究相关法律责任