【问题标题】:Storing files on instance HDD where application deployed将文件存储在部署应用程序的实例 HDD 上
【发布时间】:2017-08-13 19:19:43
【问题描述】:

我正在设计一个应用程序,它根据内容获取文件并拆分/合并它们并将其推送到其他系统。处理后根本不需要这些文件。因此,我计划将文件存储在部署应用程序的 HDD 上,而不是任何分布式/网络文件系统。

为什么我没有选择网络文件系统,因为在我的场景中我需要处理像 1GB 这样的大文件,并且我使用 JSON 流来处理这些文件。有时我需要使用 RandomAccessFile 机制来拆分我的内容。如果它发生在网络文件系统上,处理时间可能会很长。

我考虑过使用本地文件系统来扩展应用程序,它可以毫无顾虑地进行扩展,因为目标系统需要来自它们将文件推送到的同一系统的处理数据。

请提供您对此的看法?我想检查我是否走在正确的道路上

【问题讨论】:

    标签: web-applications io architecture microsoft-distributed-file-system


    【解决方案1】:

    我将提供这种方法的一些缺点:

    • 本地 HDD 通常没有冗余(例如 RAID 5/0) - 并且更有可能发生故障(这取决于您的云/硬件提供商)
    • 本地 HDD 通常基于劣质硬件(与 SAN/NAS 相比) - 并且速度可能较慢。
      • 快速/慢速 HDD 之间的主要区别通常在于随机访问。对于顺序访问(您提到主要处理大文件?) - 效果可能要小得多。
    • 如果实例失败,通常会在云提供商上删除本地 HDD 数据。因此,这又是一个丢失数据的风险。

    回顾:如果满足您的弹性和性能要求 - 我认为这种方法没有问题。

    【讨论】:

    • 好的。如果我应该能够对本地文件系统做任何事情,你有什么建议。有哪些服务可以支持这种流处理和 java 中的随机文件访问?
    • 你在云端运行吗?如果是 - 哪个供应商?我只会考虑本地服务 - 否则延迟会“扼杀”性能。
    • 尚未决定部署环境。如果是 AWS 怎么办?如果是其他云环境呢?
    • 在 AWS 上,EBS 可能最适合用例 here is a comparison ——但是,这个问题引发了不同的讨论......
    猜你喜欢
    • 2019-08-25
    • 2023-03-10
    • 2017-11-08
    • 2019-05-17
    • 1970-01-01
    • 2020-05-08
    • 1970-01-01
    • 2014-09-16
    • 2017-04-03
    相关资源
    最近更新 更多