1

我想知道我是否可以使用 Infinispan 与 Oracle 数据库进行缓存数据同步。这是我的场景。我有两个主要应用程序。一个是高并发使用的应用程序,第二个用作管理模块。由于它是高度并发的,我想减少数据库连接(将实体加载到缓存中(读写启用)并从这个地方使用它而不调用数据库)。但同时我想根据缓存更改更新数据库,因为管理模块直接使用数据库。该更新过程(缓存到数据库)可以在实体级别处理而不涉及应用程序吗?请让我知道 Infinispan 是否支持这种情况。如果支持请分享想法。

4

2 回答 2

1

对的,这是可能的。Infinispan 支持此用例。

这应该只是简单的配置“问题”。您只需要使用正确配置的 CacheStore 即可passivation disabled。它将使您的缓存(由高度并发的应用程序使用)与数据库同步。

它究竟是什么原因造成的?

禁用钝化后,无论何时修改、添加或删除元素,该修改都会通过缓存加载器保存在后端存储中。驱逐和缓存加载之间没有直接关系。如果您不使用逐出,则持久存储中的内容基本上是内存中内容的副本。

这里的内存是指缓存。如果您想了解更多关于此和其他有趣选项的信息,请参阅:https ://docs.jboss.org/author/display/ISPN/Cache+Loaders+and+Stores#CacheLoadersandStores-cachepassivation

也许值得考虑前面提到的驱逐。是否禁用或启用它。它主要取决于您的高并发应用程序产生的负载。

于 2013-06-07T02:28:36.127 回答
0

实际上,这仅在您在同一集群中为管理模块使用 Infinispan 时才有效。如果使用 Infinispan 将 A 加载到内存中,然后直接使用 admin 模块将 A 更改为数据库中的其他内容,那么 Infinispan 将不知道 A 已更新。

于 2015-05-29T06:29:19.967 回答