Java Apache Ignite JDBC和具有第三方持久性的写后缓存策略

Java Apache Ignite JDBC和具有第三方持久性的写后缓存策略,java,mysql,caching,jdbc,ignite,Java,Mysql,Caching,Jdbc,Ignite,我目前使用MySQL作为持久数据存储,我想在我的应用程序和MySQL之间引入数据网格层来处理数据库中断。我希望尽可能不破坏当前的应用程序结构 ApacheIgnite附带了两个与我的问题相关的特性:具有第三方持久性的写后缓存策略和自定义JDBC驱动程序 我想结合这两个特点如下: 应用程序将使用Ignite JDBC驱动程序保存数据 Ignite将查询/更新内存中的数据,并将数据异步刷新到MySQL数据库(写后缓存策略) 当MySQL变得不可用时,Ignite将批处理更新,直到MySQL恢复,并

我目前使用MySQL作为持久数据存储,我想在我的应用程序和MySQL之间引入数据网格层来处理数据库中断。我希望尽可能不破坏当前的应用程序结构

ApacheIgnite附带了两个与我的问题相关的特性:具有第三方持久性的写后缓存策略和自定义JDBC驱动程序

我想结合这两个特点如下:

  • 应用程序将使用Ignite JDBC驱动程序保存数据
  • Ignite将查询/更新内存中的数据,并将数据异步刷新到MySQL数据库(写后缓存策略)
  • 当MySQL变得不可用时,Ignite将批处理更新,直到MySQL恢复,并且仍将在不影响客户端应用程序的情况下提供查询/更新

这种设置是否只需要更改配置(如更换数据源实现和配置Ignite缓存?

我认为第三点不是现成的。
CacheStore
实现(例如,
CacheJdbcPojoStore
)假定与基础数据库的连接是可靠的,并且可以随时建立。write-behind机制的工作方式相同,即当内部缓冲区溢出、发生超时、触发背压机制时,它可以建立连接

因此,您必须实现自己的
CacheStore
,它负责数据的积累,而MySQL数据库由于某种原因被禁用

以下链接可能会有所帮助:


如果数据库关闭,Ignite的写后功能应自动处理该情况,并将累积更新,直到数据库恢复。这里唯一的风险是您需要有足够的内存空间来累积更新。