通常短视频开发app中的服务器能够处理的请求数量是有限的,这就会导致系统在高并发场景中出现性能问题,针对该情况也有相应的解决措施,像熔断、缓存、限流等。其中限流的本质就是让请求等待或直接丢弃请求。
一、常见的限流类型
1、合法性验证限流
像短视频开发app中的验证码、IP黑名单等就属于合法性验证限流,通过常规的业务代码防止恶意攻击和爬虫采集。
2、容器限流
在短视频开发app中,容器限流的主要方式有两种,分别是Tomcat限流、Nginx限流。其中Nginx是通过控制速率和控制并发连接数实现限流效果。
3、服务端限流
在短视频开发app中,服务端限流通常是通过限流算法实现的,常见的限流算法有时间窗口算法、漏洞算法、令牌算法。这三种算法各具优缺点,且适用于不同的场景,在开发中需要结合实际的使用场景进行分析和选择。
二、服务端限流的两种策略
在保证短视频开发app下发速度的前提下,我们可以通过对某些渠道进行限流达成像保证系统下发消息对应用户可以正常接收,保证下游渠道的稳定性等目的。在这种情况下常用的两种限流策略就是按照请求数限流和按照下发用户数限流。
三、服务端限流的实现
在短视频开发app中,要想实现限流通过有两种方式,一种是单机限流,一种是分布式限流。分布式限流看起来所起到的限流效果会更好,但分布式限流的实现难度比较大。在实际的开发中,分布式限流的实现需要借助两个中间件,分别是Redis和Sentinel。
与分布式限流相比,单机限流的实现就会简单的多,单机限流存在一些缺点,像只能控制单机的限流,如果短视频开发app中的服务器出现了扩容和缩容情况,单机限流是无法感知到的,也无法及时的采取合适的应对措施。
其实在短视频开发app的过程中,很多事情我们都无法做到,毕竟十全十美的事物是不存在的,我们只需要结合实际的开发情况选择合适的即可,尽可能提升短视频开发app质量,让其能在竞争激烈的市场中更快脱颖而出。