当后备数据存储不可用时,我能/应该禁用缓存过期吗?



我刚刚开始使用Ehcache,到目前为止它看起来还不错。我以一种简单的方式使用它来加快对数据库的读取,但我想知道是否也可以使用它来让应用程序在数据库短时间不可用时保持运行。(更新-我的上下文是一个具有高可用性模块的应用程序,只能从数据库读取)

似乎我可以通过在数据库读取问题的情况下禁用过期,并在读取再次工作时重新启用它来做到这一点。

你觉得怎么样?这是一个合理的方法吗,还是我错过了什么?如果这是一个公平的方法,我希望你能提供一些最好的建议。

Update - ehcache支持动态配置选项来将缓存设置为'eternal'。

有趣的问题——通常,答案是"视情况而定"。

首先,如果您有数据库可靠性问题,我会投入时间和精力来修复它们,而不是应用一个权宜之计。

其次,大多数应用程序都需要读和写才能工作——让你的应用程序只支持读似乎没有意义。

然而,如果你的应用程序有一个真正的"只读"功能,并且有一个已知的和可控的数据库停机原因(例如备份),那么是的,你可以使用你的缓存来保持应用程序在数据库停机时运行。我会通过延长缓存周期来实现这一点,而不是尝试编写特定的边缘情况。例如,您可能有一个后台进程,它检查数据库是否可用,并在出现问题时交换不同的配置文件。

最新更新