linux - 具有多个 Web 服务器和共享文件的横向扩展场景

标签 linux nfs distributed-system

我需要一些推荐或更好的建议。我一直在构建一个平台,并开始思考我需要拥有什么样的服务器架构。我不是服务器架构方面的专家,但是当我启动时,我至少需要一个稳定的生产环境,直到我们找到系统架构师。

随着我们以后有更多的客户,我将拥有大约 500GB(甚至更多)的产品图片和一些 PDF 文件。

我希望在网络服务器上有一个最小的文件集(HTML 和 javascript 文件)(开始时有 2 个或 3 个),以及一个所有产品图像将驻留在其中的共享目录。我将有一些独立的后端 java 进程,它将下载图像并将其存储到共享目录中,因此当请求发送到任何 Web 服务器时,客户端应该能够看到图像和 pdf 文件。

我将在后端使用 Spring MVC,并且 session 将由 Redis 集群处理,因此我不担心这种分布式 session 处理。

基本上,我需要一个解决方案来集中所有静态文件(图像和 PDF 文件),这些文件将随着时间的推移呈指数级增长,并且这些文件始终可以从网络服务器访问。

我已经阅读了可以从 Web 服务器访问的 NFS。

我想知道这个 NFS 是否是这个用例的一个好的解决方案。我确信这个用例可能是一个常见问题。

是否有比 NFS 更好的选择?

谢谢。

最佳答案

许多变量都会影响您可以使用的选项。但主要标准之一是预算。

便宜:
1)你有2或3台服务器。因此,每个系统购买一个大磁盘来存储静态文件,并使用 rsync 来确保它们全部相同。 大磁盘很便宜,你甚至可以买SSD!这可以增长一段时间。
2)与磁盘相同,并使用更先进的东西来确保同步。 gluster 或 inotify 机制就可以了。您还可以使用更多软件。
3) NFS没问题。但它不适用于高点击量的网络服务器。因此,您的文件就在那里并且可用,但是如果您经常受到攻击,您将遇到性能和/或网络问题。我们曾经遇到过这种情况,然后我们切断了 NFS,它降低了网站的速度。
4) 通过在 Web 服务器上对频繁的图像进行缓存,可以最大限度地减少 NFS 的缺点。

更贵:
5)网络存储。您可以使用一些专用的 NAS 软件来设置专用的文件服务器系统。
6)NAS,专用硬件,超快,价格昂贵。可以增长,但$$$。
7) 分布式静态文件服务。前任。阿卡迈。他们存储文件并将其分发给您的客户。因此,他们的基础设施受到了欢迎。但这是有代价的。如果你能负担得起的话,设置并不是非常复杂。您按数量付费。仅供引用,这不是认可,我们在上一家公司使用过它,可能还有其他供应商做类似的事情。

这是一个很大的主题,我希望我能让您开始一些想法。

关于linux - 具有多个 Web 服务器和共享文件的横向扩展场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50299259/

相关文章:

wordpress - AWS EFS 性能下降

kubernetes - 在谷歌云中远程创建 NFS 目录

distributed-computing - 策展人的持久性临时节点是否只是重试的常规临时节点?

java - Linux Java 开发人员可以在同一个包中创建名称仅大小写不同的类吗?

linux - 为什么 if 表达式在 bash 脚本中总是为真

amazon-web-services - AWS Cloudformation - 在 EFS 中创建初始文件夹

events - 不带事件源的 CQRS : handle event log failure

c++ - "Guaranteed Delivery"消息传递 - 我应该使用 MQTT 还是 ZeroMQ?

Linux命令在写入文件之前检测命令

linux - 系统 crontab 提供了哪些 root 用户 crontab 不能提供的功能?