【发布时间】:2021-10-03 19:12:50
【问题描述】:
我想创建一个应用程序,我将在其中使用 Hibernate L2 缓存来减少总是向数据库请求数据的不必要性。
在我的应用程序中,超过 80% 的时间是 READ 操作,不到 20% 的时间是创建/更新/删除操作。因此,我认为使用 Hibernate L2 Cache 将是有益的。但是,由于我们要横向扩展应用程序,我们希望使用 Infinispan 作为 Hibernate 的 L2 Cache。
但是有几个问题我们不确定。
- 如果我理解正确,Hibernate L2 Cache 应该通过更新缓存来工作,只要有新的创建/更新/删除操作,或者查询之前尚未查询。因此,在连接到同一个数据库的多台服务器设置上,由于存在网络 IO 问题,那么多个更新操作如何在这样的环境中工作?由于2个应用服务器可能同时更新数据库,每个都更新同一个实体到不同的数据,但是由于网络IO问题,Hibernate怎么知道这些数据应该被缓存和同步,而这些数据不应该呢?
【问题讨论】:
-
对于每个问题,答案是:这取决于您的意愿。如果您可以改进问题,说出您的期望,我可以尝试帮助您进行 Infinispan 配置。
标签: java hibernate caching distributed infinispan