我目前使用MySQL作为持久性数据存储,我想在我的应用程序和MySQL之间引入数据网格层来处理数据库中断。我想尽可能以非侵入性的方式对当前的应用程序结构进行操作。
Apache Ignite 附带了两个与我的问题相关的功能:具有第三方持久性的后写缓存策略和自定义 JDBC 驱动程序。
我想将这两个功能结合起来,如下所示:
- 应用程序将使用 Ignite JDBC 驱动程序来持久保存数据。
- Ignite 将查询/更新内存中的数据,并将数据异步刷新到 MySQL 数据库(后写缓存策略)。
- 当MySQL变得不可用时,Ignite将批量更新,直到MySQL恢复,并且仍将提供查询/更新,而不会影响客户端应用程序。
仅通过配置更改(例如替换数据源实现和配置 Ignite 缓存)是否可以进行此设置?
我不认为开箱即用的第 3 点。CacheStore
实现(例如,CacheJdbcPojoStore
)假定与基础数据库的连接是可靠的,并且可以随时建立。后写机制的工作方式相同,即当内部缓冲区溢出、超时、触发背压机制时,它可以建立连接。
因此,您必须实现自己的CacheStore
,它负责数据的积累,而MySQL数据库由于某种原因被禁用。
也许,以下链接会有所帮助:
- https://apacheignite.readme.io/docs/3rd-party-store#section-cachestore
- https://apacheignite.readme.io/docs/3rd-party-store#section-cachestoresession