两台服务器A,B部署的应用,该应用需要上传下载挺多的文件(word,excel等),这两台服务器包了个f5做的集群。
这种情况下,如何做共享存储呢?
两台服务器A,B部署的应用,该应用需要上传下载挺多的文件(word,excel等),这两台服务器包了个f5做的集群。
这种情况下,如何做共享存储呢?
不知道有没有理解错问题:
首先服务器A把文件传输到另一台服务器(称作服务器B)的过程,与前端把文件上传到服务器A没什么区别。
看服务器B提供什么服务,它是一个数据库/对象存储服务/普通的HTTP服务器/只有基础网络的linux主机,用对应的协议和接口(一般也就是四层用TCP,往上用HTTP,RPC等方式)传递就好了。甚至服务器A用scp,ftp之类的方式直接传输也可以。
以HTTP服务为例,服务器A是会实现一个HTTP Client的,这和浏览器的机制本质一样。
集群的话要保证不管是从A还是B访问文件都是一样的,那直接用云服务商的存储服务,或者自建类似minio
的存储比较简单,用云服务商的就类似申请C,如果是自建的minio
,你既可以放到A也可以放到B也可以再申请个C.
我理解,你不想加服务器,又为了AB两个服务器都可以提供文件下载,你要做的是在AB两个服务器做上传后文件的同步,以保证f5请求下载的时候都可以下载到文件,这样只要在AB服务器上对上传文件目录配置文件同步就可以了,但是这个有时序风险,就是没同步完成,如果f5漂移到未同步完成服务器,会无法下载
如果存储文件较多,还是建议专门的C服务器来做文件服务器,避免时序问题,同时应用和文件解耦,方便运营管理,和后期扩容
15 回答6.9k 阅读
2 回答3.3k 阅读✓ 已解决
3 回答7k 阅读✓ 已解决
5 回答4.7k 阅读
3 回答5.2k 阅读
4 回答2.4k 阅读
2 回答2.3k 阅读✓ 已解决
个人拙见,辣鸡后端,思路仅供参考,也可以纯当我放个屁;
角色说明:A=你的机子;B=目标机器;C=前端
总结:A→B总要有个传输媒介,要么现成的服务提供(如方案3),要么你自己写个服务(如方案1),要么直接让前端传(方案2)