首页 > 解决方案 > 轻量级易于安装的数据库

问题描述

我有一个小型家庭开支应用程序,我在空闲时间用 Java 开发它。既然它是功能性的,我想让它便携,这样我就可以把它传递给朋友(非开发人员)来试用。

我设法对 api 和 web ui 进行了 dockerize,但是 DB 有点棘手。目前我正在使用mysql,安装在我的机器上。但我不希望用户安装和配置数据库。

我需要的是:

标签: javadatabasedocker

解决方案


基本上你的选择是:

  1. Dockerize 也 mysql 数据库(使用现成的图像)​​+您可能想使用 docker compose 同时启动数据库和应用程序。如果您的朋友有 docker(这似乎已经是您的应用程序的要求,那么它可能是最简单的方法)。

  2. 使用可嵌入到您的应用程序中的另一个数据库。例如:SQLLight、Derby、H2。如果您的查询简单且“足够便携”,这种方法也可以工作,但您至少必须重新检查所有查询,因为有时这些 DB 的行为可能与 MySql 不同。与方法 1 不同,您不需要运行另一个容器,也不会使用 docker-compose,反正这没什么大不了的,因为 docker compose 现在是任何 docker 安装的一部分。

  3. 在某个云(如 AWS)中托管数据库并从您的应用程序连接到云。这可能会很慢(应该是这 3 种方法中最慢的方法),但可以让您免于维护数据库的负担。当然,如果您的应用程序的不同副本应该访问不同的数据,则它不会起作用(然后您必须在云中为每个用户维护一个数据库)。这也可能很昂贵,因为您必须向云提供商付费。

最后,我建议您使用解决方案 1,如果您不能使用 2,最糟糕的是解决方案 3 IMO。


推荐阅读