接口幂等性是指同一个接口,多次发出同一请求,必须保证操作只执行一次。之所以要这样是为了避免调用接口发生异常并且重复尝试时对系统造成不必要的损失。接下来我们一口气了解一下在短视频开发时可以保证接口幂等性的多种方法。

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

一、按钮只可操作一次

一、按钮只可操作一次

这是一种从防止客户端重复调用方面确保接口幂等性的方法,在短视频开发时,通过提交后将按钮置灰或loding状态来避免按钮被重复操作。只要按钮被限制操作了就不会出现重复点击的情况,自然也不会出现重复记录。

二、token机制

二、token机制

在短视频开发时,可以通过token机制来确保接口幂等性,具体实现逻辑为:

1、进入一个页面的同时申请一个token;

2、后续的所有请求都需要带上这个token;

3、后端会进行token对比,来判断该请求是否为重复请求。

三、乐观锁

三、乐观锁

在短视频开发时,可以在设计表结构时使用乐观锁,以此保证接口幂等性。之所以乐观锁能够起到该作用是因为乐观锁会假设在大多数情况下,多个线程之间不会发生冲突。

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

在读取数据时,每个线程都会获得一个标识符,提交修改前,会将当前标识符和之前读取的标识符进行对比,对比结果分为两种:

1、两个标识符相同,则提交成功;

2、两个标识符不同,则证明该数据已被其他线程修改,所以要进行冲突处理。

四、分布式锁

四、分布式锁

通常为了保证系统的可用性,短视频开发时会采用分布式部署策略,而分布式系统构建全局唯一索引是比较困难的,所以我们可以引入分布式锁来确保接口的幂等性。

分布式锁确保接口幂等性的逻辑是确保同一时刻只有一个客户端能够对某个资源进行访问,以此避免数据不一致问题。

五、缓冲队列

五、缓冲队列

在短视频开发时,可以利用缓冲队列确保接口幂等性,具体实现逻辑是先将请求快速接收下来并放入缓冲队列中,然后再使用异步任务处理队列中的数据,过滤掉重复请求。

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

上述五种是短视频开发时比较常用的确保接口幂等性的方法,除了上述五种之外,其实还有其他确保接口幂等性的方法。不同方法具备不同的优劣势,且适用于不同的业务场景,所以在短视频开发时,应该结合实际的开发情况选择使用。

声明:本文由云豹科技原创,转载请注明作者名及原文链接,否则视为侵权