短视频直播系统,幂等真有那么重要吗?
在短视频直播系统中,远程调用服务可能会出现成功、失败、超时这三种不同的状态,如果远程调用服务处于超时状态下系统一般会自动发起重试机制,但前面超时的请求如果在重试后也提交成功则会出现请求被重复提交的情况,而幂等就是为了避免这种情况的发生。

一、接口超时的处理方案
由于网络等因素的影响,短视频直播系统在调用下游接口时可能会出现超时的情况,在发生接口超时后,应该采用哪些处理方案呢?
1、下游接口提供一个对应的查询接口
如果在短视频直播系统中出现接口超时情况时,可以通过查询接口查询对应的记录,如果能查到对应记录则代表该调用成功,如果没有查询到对应记录则代表该调用失败,然后再发起重试。
2、发起重试
如果短视频直播系统下游接口支持幂等,则可以直接在调用接口超时时发起重试。
二、设计幂等的常用方案
1、全局唯一主键ID
在短视频直播系统中可以通过生成全局唯一主键ID的方式来设计幂等,利用全局唯一主键ID去标记各个请求,保证请求的唯一性,该实现方式通常适用于插入操作、删除操作等。

2、乐观锁
对于短视频直播系统中的更新操作,可以通过数据库乐观锁来设计幂等,提前在对应的数据表中多添加一个字段,作为当前数据的版本标识。
3、Token令牌
在短视频直播系统开发时,可以利用Token令牌设计幂等,该方式适用于系统中的插入操作、更新操作、删除操作等。
三、短视频直播系统设计幂等的影响
虽然幂等能避免请求重复提交等问题,但在设计幂等后也会增加短视频直播系统服务端的逻辑复杂性和成本,主要原因有两个:
1、在设计了幂等后很多并行执行的功能就会被改为串行,从而导致了执行效率的降低。
2、在设计了幂等后会增加幂等相关的业务逻辑,从而提升了短视频直播系统的业务逻辑复杂性。

幂等设计虽然很重要,但在短视频直播系统开发时,还是得结合实际的业务场景去分析,在必要的场景下实现幂等,在非必要的业务场景中避免实现幂等。其实很多技术的选择也是如此,在合适的场景下使用合适的技术才能提升短视频直播系统开发质量。
声明:本文由云豹科技原创,转载请注明作者名及原文链接,否则视为侵权