后端做了负载均衡的情况下,前端怎么做分片上传文件?

每次请求都的服务器都是随机的,分片都上传到了不同的服务器,上传完了之后如何合并?
Nginx的负载均衡策略是可以使同一个用户请求一个服务器的,但如果不修改Nginx负载均衡策略的情况下,怎么解决这个问题

本作品采用《CC 协议》,转载必须注明作者和本文链接
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 20

上传目录是一个共享挂载目录 :wink:

1周前 评论
没有哆啦A梦的大雄 (楼主) 1周前
tsingyan (作者) 1周前
Complicated

之前遇到过这个问题。一个是 修改代理的策略,弄成ip哈希的那种,就是来自同一个ip的请求,都固定到一台服务器上去。第二个是 弄个图片服务器(就跟oss一样)

1周前 评论
没有哆啦A梦的大雄 (楼主) 1周前
Complicated (作者) 1周前
zhy 1周前
Complicated (作者) 1周前

都做负载均衡了 还不用oss啊

1周前 评论

其实最简单的方法就是上 OSS,前端直传,或者自己用 MinIO 搭建一个 OSS 服务,全面兼容 S3 API,Laravel 集成起来也比较方便!

还有一点不理解的是,如果你后端存储不是独立服务的话,那么就算上传的时候没问题,到时候读取也是个问题啊。

1周前 评论

为啥不用oss呀?

1周前 评论
没有哆啦A梦的大雄 (楼主) 1周前
巴啦啦

现在这个时代,将一切与核心程序无关的服务,都应该独立出去。一是便于扩展,二是便于迁移。

1周前 评论
panda-sir

现在都是前端只传oss多 直接让前端传就行了

1周前 评论

刚好有用到负载均衡,可以看下这个:cloud.tencent.com/document/product...

基于 Cookie 插入的会话保持

1周前 评论
lufeijun1234

指定路由,由专门的服务器处理这种情况

6天前 评论

Nginx也可以设置某个URL由某台机器处理,把上传的URL设置一下就好了

6天前 评论
没有哆啦A梦的大雄 (楼主) 6天前

没记错的话,ali的oss 分片上传,都是先发起一个oss 分片事件,然后产生一个事件id和这个事件下所有分片的key,可以用这个思路解决,你记录事件id和分片key还有要分多少片,经过负载均衡网关时候记录下他的key然后把存入哪一台的ip存一份 等他最后调用上传结束事件 在读取这个事件id的所有ip 在内网合并,这样好像可行吧

5天前 评论

系统和部署 要支持无状态,方便水平扩展;你用磁盘存就把服务变成了有状态

5天前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!