请教下,集群环境下大家都是怎么上传较大文件的?
以上传图片为例,目前我用的方法是上传至某台机之后再转存至云存储,用户统一从云存储下载。带来的问题是用户上传一张图需要等待两次上传的时间(一次客户端到服务器,一次服务器到云存储),而且对服务器的上行带宽要求较高。这样做功能没问题,但是体验差了点。
优化方法是上传至服务器之后就直接让接口返回,同时有个后台任务不断从服务器上传至云存储。在上传云存储成功之前可以直接从服务器下载。但是在集群环境下,我需要知道图片究竟被传在哪个服务器。或者说即使可以记录存在哪台机的信息,但是让负载均衡查数据库显然不行。如何准确快速的访问到又能兼顾扩展性(随时加入新机到集群中)?
再一种方案是客户端直接上传云存储,只通过接口提交云存储下的路径。弊端主要是云存储密钥泄露问题。
比较倾向第二种,但是遇到的问题也麻烦,有点迷茫,不知道大家都是怎么做的。
推荐文章: