首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

上传文件服务与web服务分离

业务场景: 1. 后端服务为java web应用,使用tomcat容器,多实例集群化部署。 2. 前端使用nginx作为后端应用的反向代理。 业务需求: 现在需要在java web应用端上传文件,同时还要能支持文件下载。 设计方案: 1. 文件应该专门使用文件服务器进行存储,在数据库中存储文件下载链接即可。 2. tomcat容器本身不擅长做文件上传下载的事情,所以最好将文件上传下载的功能与web服务分离,比如使用nginx作为文件服务器。 具体实现: 通常,针对简单的应用,可以使用NFS,在web端上传文件后直接写到文件服务器;或者将文件上传到web应用之后,再将文件同步到文件服务器。 不论是通过NFS或者任何其他同步工具的方式,都存在文件中转的过程,必须先将文件通过web应用进行上传保存,再同步到文件服务器。中间可能存在同步出错或延时,也存在扩展性不好的问题。 所以,设计实现方案如下: 1. 使用http协议通过web表单方式上传文件。 2. 在文件服务器上部署web服务器,专门用于文件上传。 3. 通常在web应用中上传文件时,除了上传文件数据,还需要传递一些文字。文字保存在数据库中,文件保存在服务器上,同时将生成文件下载链接保存在数据库。 4. 通过MD5校验文件内容,避免相同文件因为文件名不同而被恶意上传导致大量垃圾文件占满磁盘空间。

01
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    架构训练营模块二作业

    朋友圈复杂度分析: 业务复杂度:朋友圈的业务复杂度比较低,只有内容发布、查看和评论和点赞等内容。 质量复杂度:朋友圈的用户非常多,微信的用户数量都会有朋友圈功能,根据张小龙在“2021微信公开课PRO”中的演讲,每天有10.9亿用户打开微信,3.3亿用户进行了视频通话;有7.8亿用户进入朋友圈,1.2亿用户发表朋友圈,其中照片6.7亿张,短视频1亿条;有3.6亿用户读公众号文章,4亿用户使用小程序。 可知,微信朋友圈的PV每天约为7.8亿,绝大部分人都会在白天查看朋友圈,在0点-6点相对是朋友圈活跃度最低的时间段,这部分的PV忽略不计,按18小时计算。 可以得到平均的QPS为12000,考虑到在某些时间段如中午吃饭、上下班路上使用朋友圈的情况会相对集中,因此,可以考虑峰值是平均值的5倍,那么高峰期的QPS大约为60000/s。 再查看朋友圈的时候,基本上查看朋友的人都会点赞,那么点赞功能的TPS可能是查看QPS的百分之八十左右,约为50000/s 对评论朋友圈的情况,评论的概率会低于点赞,按缩减五倍计算,评论的TPS大概为10000/s 对于发布朋友圈的情况,会存在很多用户都是查看朋友圈,而不会发布朋友圈,因此与评论持平即可,TPS为10000/s

    02

    什么是时钟系统?时钟同步对计算机网络的重要性

    目前计算机网络中各主机和服务器等网络设备的时间基本处于无序的状态。随着计算机网络应用的不断涌现,计算机的时间同步问题成为愈来愈重要的事情。以Unix系统为例,时间的准确性几乎影响到所有的文件操作。 如果一台机器时间不准确,例如在从时间超前的机器上建立一个文件,用ls查看一下,以当前时间减去所显示的文件修改时间会得一个负值,这一问题对于网络文件服务器是一场灾难,文件的可靠性将不复存在。为避免产生本机错误,可从网络上获取时间,这个命令就是rdate,这样系统时钟便可与公共源同步了。但是一旦这一公共时间源出现差错就将产生多米诺效应,与其同步的所有机器的时间因此全都错误。

    02
    领券