【问题标题】:Synchronize Infinispan cache entries with database将 Infinispan 缓存条目与数据库同步
【发布时间】:2012-08-23 21:00:18
【问题描述】:

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

【问题讨论】:

    标签: jpa-2.0 jboss6.x infinispan


    【解决方案1】:

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

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

    究竟是什么原因造成的?

    当禁用钝化时,每当修改元素时,添加 或删除,然后该修改将保留在后端存储中 通过缓存加载器。驱逐之间没有直接关系 和缓存加载。如果你不使用驱逐,持久化中的内容是什么 store 基本上是内存中的内容的副本。

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-03-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多