【发布时间】:2020-05-29 08:58:36
【问题描述】:
我的 Java 应用程序是围绕嵌入式数据库构建的,该数据库将 db 数据直接存储到磁盘。我知道 Heroku 默认情况下是建立在 临时文件系统 上的,当 dynos 重新启动或不坚持时,存储在其中的任何内容都将被删除。
在 Heroku 中提供和部署此类应用程序的解决方法是什么?
【问题讨论】:
我的 Java 应用程序是围绕嵌入式数据库构建的,该数据库将 db 数据直接存储到磁盘。我知道 Heroku 默认情况下是建立在 临时文件系统 上的,当 dynos 重新启动或不坚持时,存储在其中的任何内容都将被删除。
在 Heroku 中提供和部署此类应用程序的解决方法是什么?
【问题讨论】:
我了解 Heroku 默认情况下是基于一个临时文件系统
这不是“默认”。它是Heroku's architecture 的基础,无法更改。 Heroku 被设计成可以简单地水平扩展,并且该设计的一部分是状态应该存在于任何一个 dyno 之外。测功机是一次性的。
在 Heroku 中提供和部署此类应用程序的解决方法是什么?
据我所知,不存在。更改保存数据的方式或选择其他主机。
(您可能能够在您的测功机上挂载一个共享的持久文件系统,但这很尴尬并且破坏了 Heroku 的架构。我不建议这样做。Heroku 的 offical addons 都没有提供持久文件系统,并且快速搜索发现一些博客文章概述了尝试,但我没有看到任何成功。)
【讨论】: