服务化改造之文件网关

背景

895926-20161121101907643-876595791.png
从上图可以看到我们前期文件上传的技术架构,各应用都需要mount到文件服务器进行文件的相关管理、文件管理不便,所以这样进行文件上传就会带来以下几个问题:

增加运维人员工作量

由于文件上传是由个应用方来实现,所以有的应用方可能并没有对文件进行删除,移动的权限,所以需要运维人员来进行操作,增加了运维人员的工作量。

文件无法实现统一管控

上传的文件大小,类型,访问权限都是由各应用来管控,所以无法实现统一的管控。

大文件,批量上传重复工作

像大文件,批量文件上传操作是需要客户端与服务端共同来协调进行的,所以此类文件操作都会存在各个应用重复建设的情况。

文件网关技术架构

所以针对以上提出的问题,便有了文件网关这个项目,将文件上传移动等操作进行服务化,提供统一的接口。
895926-20161121113523315-1050317186.png
文件网关支持两种文件通道(本地存储,七牛云存储)的方式来进行文件管理,同时可以使用七牛提供的CDN服务,加速文件的访问速度。以下是文件网关实现的几个功能特点:

数据容灾

当七牛不可用时,文件网关会记录相关文件操作事件,在七牛恢复时将数据同步,保证数据的可用性。

断点续传

当网络出现较大波动时,大文件上传往往会失败,所以大文件要按照一定大小分块,每次请求只上传其中的一块,通过多次请求来上传。

并发上传

文件网关支持多文件的并发上传,所以高并发的上传请求不会阻塞文件网关,导致文件网关无法服务。

实现

文件上传主要有规则校验器,文件分发器两个模块来实现。
895926-20161121134136503-1633380684.png
上图是文件网关的线程模型,文件上传请求首先会通过规则校验器对文件的大小,类型,文件目录等参数进行校验,校验成功后的文件通过文件分发器进行文件分发,为了保证数据一致性,文件分发是一个原子操作,保证文件同时上传至文件服务器和七牛中,当七牛不可用时,文件网关记录事件日志,定时任务会周期性的探查七牛是否恢复服务,当七牛恢复服务时,则会将文件服务器中的文件同步到七牛中。

转载于:https://www.cnblogs.com/rk0x1/p/6084500.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值