linux – 处理用户上传到Web服务器集群的过程

linux – 处理用户上传到Web服务器集群的过程,第1张

概述我们在硬件负载均衡器后面有许多 Linux Web服务器,它们为单个网站提供服务. 需要访问者能够上传文件.这些文件的大小通常为300-700KB,我们预计其中有100万个.但是,这会带来一个明显的问题:如果用户将文件上传到处理其请求的服务器,我们如何保持所有服务器同步? 延迟应该是最小的,因此在设定的时间表上使用像rsync这样的东西并不是一个真正的选择.应该没有单点故障,因此NFS不适合,除非 我们在硬件负载均衡器后面有许多 Linux Web服务器,它们为单个网站提供服务.

需要访问者能够上传文件.这些文件的大小通常为300-700KB,我们预计其中有100万个.但是,这会带来一个明显的问题:如果用户将文件上传到处理其请求的服务器,我们如何保持所有服务器同步?

延迟应该是最小的,因此在设定的时间表上使用像rsync这样的东西并不是一个真正的选择.应该没有单点故障,因此NFS不适合,除非它与DRBD结合以创建故障转移NFS服务器.

我已经研究过共享/集群文件系统(glusterFS,mogileFS,OCFS2和GFS),但没有这方面的经验,所以我不确定它们在生产环境中的性能和可靠性如何.

我欢迎任何关于如何最好地解决这个问题的建议.

非常感谢

解决方法 通过DRBD的GFS2 / OCFS2允许一对服务器作为集群存储运行双主服务器.您的网络前端会从该共享对中拉出来.您可以使用多个磁头共享单个FC连接介质,或者可以使用NFS来使用每个Web前端使用的单个共享文件系统.如果将NFS与DRBD一起使用,请记住,由于缺少群集锁,您只能在主/辅助模式下运行它.这可以将您的潜在吞吐量减少一半.

glusterFS听起来更像你正在寻找的东西.它会有一些独特的怪癖,即在尚未拥有它的节点上请求的文件,元数据查找说它存在,它从一个复制节点传输然后提供.在节点上首次请求将有一些延迟取决于文件大小.

openafs也是另一种可能性.您有共享存储,每个本地资源都有一个最近使用过的项目的本地池.如果存储引擎发生故障,您的本地资源池仍可用.

Hadoop的HDFS是另一种“有效”的选择.设置有点复杂,但也符合您的要求.使用分布式文件系统时,您将拥有大量重复内容.

另一种脏方法是在每个Web前端上运行缓存,从单个机器上提取静态/上传内容,并在每个前端使用Varnish来维护单个副本的ram缓存版本.如果您的单台机器出现故障,Varnish将缓存现有项目,直到宽限期,新项目将丢失.

其中大部分将基于您需要的后端的可靠性.本地计算机是复制节点的分布式文件系统可能会有速度优势,因为它们不涉及网络 *** 作来获取数据,但是,由于gigE和10G卡很便宜,您可能不会遇到明显的延迟.

总结

以上是内存溢出为你收集整理的linux – 处理用户上传到Web服务器集群的过程全部内容,希望文章能够帮你解决linux – 处理用户上传到Web服务器集群的过程所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/1039131.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-24
下一篇 2022-05-24

发表评论

登录后才能评论

评论列表(0条)

保存