基于Redis分布式锁开发的AWS S3 URL上传方法技术

技术编号:26606669 阅读:37 留言:0更新日期:2020-12-04 21:31
本发明专利技术公开了一种基于Redis分布式锁开发的AWS S3 URL上传方法,属于计算机应用及网络通信领域,本发明专利技术要解决的技术问题为视频直播使用第三方厂商提供的录制、截图功能无法直接将录制文件保存到对象存储,采用的技术方案为:该方法具体如下:部署K8S集群,多节点发布组件应用,使用nginx代理实现外网访问;将数据信息存入数据库保存和文件的下载上传实现异步处理;使用线程池创建多线程进行并发处理,并且对不同文件类型或者不同协议类型的文件进行不同的处理。

【技术实现步骤摘要】
基于Redis分布式锁开发的AWSS3URL上传方法
本专利技术涉及计算机应用及网络通信领域,具体地说是一种基于Redis分布式锁开发的AWSS3URL上传方法。
技术介绍
在直播录制、截图保存视频、图片信息时,需要将视频文件和图片文件保存到对象存储中,以展示视频的各种参数信息以及提高视频在线播放的性能。实际应用功能需求中,不同格式的视频文件的录制、实时截图产生的图片需要批量迅速上传。而在融合产品框架中,录制、截图的基本实现由第三方厂商或者其他部门提供,涉及到与第三方厂商进行视频文件的传输与保存,从第三方厂商视频存储传输保存到己方应用的云存储中,实现云平台的统一管理。AWSS3支持IO流的上传功能,但是通过URL网络传输的IO流不稳定,存在丢包等网络风险。对象存储虽然支持stream上传,但网络传输流不稳定,因此需要将视频从录制、截图节点,经过下载、上传将录制或者截图文件保存到对应用户的对象存储服务中。由此可见,现有技术中存在视频直播使用第三方厂商提供的录制、截图功能无法直接将录制文件保存到对象存储的问题。网络编程中,网络的波动因素对应本文档来自技高网...

【技术保护点】
1.一种基于Redis分布式锁开发的AWS S3 URL上传方法,其特征在于,该方法具体如下:/n部署K8S集群,多节点发布组件应用,使用nginx代理实现外网访问;/n将数据信息存入数据库保存和文件的下载上传实现异步处理;/n使用线程池创建多线程进行并发处理,并且对不同文件类型或者不同协议类型的文件进行不同的处理。/n

【技术特征摘要】
1.一种基于Redis分布式锁开发的AWSS3URL上传方法,其特征在于,该方法具体如下:
部署K8S集群,多节点发布组件应用,使用nginx代理实现外网访问;
将数据信息存入数据库保存和文件的下载上传实现异步处理;
使用线程池创建多线程进行并发处理,并且对不同文件类型或者不同协议类型的文件进行不同的处理。


2.根据权利要求1所述的基于Redis分布式锁开发的AWSS3URL上传方法,其特征在于,所述数据信息是通过URL下载链接将文件上传到指定对象存储服务中,具体如下:
通过网络通信获取厂商返回的数据信息,存入数据库保存;
解析数据信息,并进行下载操作;
解析数据信息,并将下载信息与文件元信息一同上传到对象存储。


3.根据权利要求1或2所述的基于Redis分布式锁开发的AWSS3URL上传方法,其特征在于,所述数据库的单条文件数据包括用户数据、文件来源数据、文件元数据及对象存储配置数据;
其中,用户数据包括用户id和用户状态,用户数据用于判断该条数据的任务是否需要执行;
文件来源数据是指厂商提供的文件下载地址;
文件元数据包括文件格式、文件协议、文件大小、录制、开始时间、结束时间、用户下载地址、播放地址、任务状态的需要文字展示给用户或播放、查看时所需信息;
对象存储配置数据包括对象存储服务用户鉴权密钥、上传位置、服务器节点及服务区域的数据。


4.根据权利要求2所述的基于Redis分布式锁开发的AWSS3URL上传方法,其特征在于,所述下载操作中下载请求的建立具体如下:
(1)、请求网宿下载链接,下一步执行步骤(2);
(2)、判断是否成功解析域名:
①、若是,则执行步骤(3);
②、若否,则跳转至步骤(5);
(3)、TCP链接是否被重置:
①、若是,则跳转至步骤(5);
②、若否,则执行步骤(4);
(4)、建立短链接,进行数据传输;
(5)、是否已达到重试上线:
①、若是,则执行步骤(6);
②、若否,则跳转至步骤(1);
(6)、降低优先级,任务结束。


5.根据权利要求4所述的基于Redis分布式锁开发的AWSS3URL上传方法,其特征在于,所述数据传输由定时任务触发,不同节点使用相同的Redis分布式锁,在Redis分布式锁上加上自旋锁,当节点未抢到Redis分布式锁,在Redis分布式锁过期时间内自旋等待;当其中一个节点进行数据库修改,释放Redis分布式锁后,自旋节点立即进行抢锁获得锁;
使用Redis分布式锁实现K8S分布式锁,并给Redis分布式锁添加过期时间;
其中,K8S集群使用多节点部署,K8S集群节点使用滚动式部署,在网络波动场景下,下载或者上传任务失败时,当前一个节点失败锁释放,下一个节点获取锁,重新执行任务;emptydir用以设置缓存文件夹的挂在路径,emptydir每一个节点都有自己的单独空间,前一个节点任务失败,下一个节点进行下载时不能重写另一个节点的文件,若当前节点完成任务,上一个节点的失败下载文件使用hostpath进行挂载,hostpath不同节点使用同一空间,避免产生孤岛文件。

【专利技术属性】
技术研发人员:罗宇豪陈初兴徐士强高传集
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:山东;37

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1