如何在不依赖数据库的Web应用程序部署之间保存服务器状态?

时间:2011-02-03 18:59:22

标签: java tomcat spring-mvc jetty

我们有一个不使用数据库的实用程序spring-mvc应用程序,它只是一个soap / rest包装器。我们希望存储一条任意消息,以便在部署之间持续显示给用户。应用程序必须能够读取和写入此数据。对此有什么最佳做法吗?

4 个答案:

答案 0 :(得分:1)

多种选择。

将某些内容写入文件系统 - 非常适合持久性。有点慢。主要缺点是它可能必须是共享文件系统,因为任何类型的群集都不能很好地处理这个问题。然后你会遇到文件锁定问题。非常容易实现

嵌入式数据库 - 与写入文件系统相似的好处和陷阱,但可能更好地解决锁定/事务问题。实施起来有点困难。

分布式缓存 - 类似于Memcached - 比文件快一点,但并不多。处理群集和锁定问题。但是,它不是持久的。对于短暂的webapp重启非常可靠,但绝对不是100%。实施起来比较困难,另外还需要另外一台服务器。

答案 1 :(得分:0)

为什么不使用嵌入式数据库?选项包括:

只需将jar文件包含在webapps classdir中,并正常配置JDBC URL。

当您想要切换到更大的数据库服务器时,非常适合演示并且易于替换

答案 2 :(得分:0)

我会简单地将它存储在文件系统的文件中。可以使用嵌入式数据库或类似的东西,但对于1条消息,文件就可以了。

我建议您将文件存储在应用程序目录之外。 它可能在它旁边(旁边),但不要将它存储在你的“webapps /”目录中,或类似的东西。

您可能还需要管理并发性。全局(静态)读/写锁应该没问题。

答案 3 :(得分:0)

我会使用JNDI。为什么过于复杂?