在openshift Web应用程序中存储和获取文件

时间:2017-09-18 04:15:30

标签: java database java-ee filesystems openshift

我正在开发一个Web应用程序,它具有上传,存储文件以及获取和显示文件的功能。我打算在openshift中部署应用程序。

请建议如何存储和检索文件。考虑到应用程序的性能,文件是存储在DB(MySQL)还是文件系统中?

1 个答案:

答案 0 :(得分:1)

您的目标:

  • 您需要存储文件,这是一种持久对象;
  • 您需要在OpenShift环境中执行此操作。

因此,您应该考虑使用Kubernetes附带的持久卷(PV),这是OpenShift使用的容器的基础管理计划。

PV子系统提供了一个API,用于提供有关如何提供存储以及如何使用存储的详细信息,因此您可以选择最适合您需求的众多后端之一。例如,您可以选择基于GlusterFS的持久卷,以获得高可用性。您还可以选择iSCSI,NFS等,具体取决于您已拥有的基础架构。

请参阅OpenShift persistent volumes指南。

您还可以使用数据库存储持久卷上文件的路径。使用Java写入这些文件就像使用标准java.io包一样简单。

但是使用数据库跟踪远程动态卷上的文件是一种重新发明的对象存储系统。因此,您还可以从OpenStack社区查看Swift SAAS(存储即服务)子系统。它可以从JSON / REST API获得,因此从JEE环境中访问它非常容易。

PV当然比Swift更容易集成(Swift至少需要KeyStone才能提供服务,所以如果你想要SAAS和REST / JSON API,可以部署两个OpenStack子系统。)