**结束。**此问题不符合堆栈溢出准则。它目前不接受答案。
**想改进这个问题吗?**更新问题,使其成为堆栈溢出的主题。
4个月前关门了。
改进这个问题
我有一个小的家庭开支应用程序,我在业余时间用java开发。既然它是功能性的,我想让它可移植,这样我就可以把它传递给朋友(非开发人员)试用。
我设法将api和webui对接起来,但是db有点棘手。目前我正在使用mysql,安装在我的机器上。但我不希望用户安装和配置数据库。
我需要的是:
免费的东西
on prem(不希望用户担心他们的数据可能被窃取)
低容量和速度要求。这个数据相对较小。
便携式。理想情况下无需安装。或者不带参数的脚本安装。
零维护。我不希望用户检查运行状况或安装修补程序。
坚持。在内存数据库,将松散的数据,如果压碎是不好的。
因为我已经投资了springorm,所以我更喜欢使用现有代码的东西。
1条答案
按热度按时间osh3o9ms1#
基本上你的选择是:
dockerize还包括mysql数据库(使用就绪图像)+您可能希望使用docker compose同时启动db和应用程序。如果您的朋友有docker(这似乎已经是应用程序的一个要求了,那么它可能是最简单的方法)。
使用另一个可嵌入到应用程序中的数据库。例如:sqllight、derby、h2。如果您的查询很简单并且“足够可移植”,那么这种方法也可以工作,但是您至少必须重新检查所有查询,因为有时这些数据库的行为可能与mysql不同。与方法1相反,您不需要另一个容器来运行,也不需要使用docker compose,这不是什么大问题,因为docker compose是当今任何docker安装的一部分。
在一些云(比如aws)中托管一个数据库,并从应用程序连接到云。这可能会很慢(应该是这3种方法中最慢的一种),但会使您免于维护数据库的负担。当然,如果应用程序的不同副本需要访问不同的数据(那么你就必须在云中为每个用户维护一个数据库),那么这就行不通了。这也可能是昂贵的,因为你将不得不支付给云提供商。
总而言之,我建议你用解决方案1,如果你不能用2,最坏的是解决方案3。