Java 使用JDBC和持久数据存储添加Apache Ignite同步数据

Java 使用JDBC和持久数据存储添加Apache Ignite同步数据,java,mysql,caching,jdbc,ignite,Java,Mysql,Caching,Jdbc,Ignite,ApacheIgnite提供JDBC驱动程序和写后缓存功能 如果使用JDBC驱动程序将数据添加到Ignite,是否有一种方法可以使用write-behind策略在Ignite和MySQL之间同步数据 数据流如下所示: app-Ignite JDBC driver->Ignite-MySQL JDBC driver->MySQL。如果使用SQL(缓存查询或Ignite JDBC)对Ignite中的数据进行操作,则配置的缓存存储不遵循读通、写通和写后语义 例如,您需要使用方法将数据加载到缓存中,以便

ApacheIgnite提供JDBC驱动程序和写后缓存功能

如果使用JDBC驱动程序将数据添加到Ignite,是否有一种方法可以使用write-behind策略在Ignite和MySQL之间同步数据

数据流如下所示:
app-
Ignite JDBC driver
->Ignite-
MySQL JDBC driver
->MySQL。

如果使用SQL(缓存查询或Ignite JDBC)对Ignite中的数据进行操作,则配置的缓存存储不遵循读通、写通和写后语义

例如,您需要使用方法将数据加载到缓存中,以便能够从SQL查询数据

如果需要write-behind语义,那么应该使用缓存键值API


另一个选择是放弃MySQL并使用它。这样,数据将在群集重新启动时保留。它允许您对来自任何API的数据进行操作,并且无需将其复制到另一个数据库

问题是,整个基础设施依赖于MySQL中是否存在这些数据,至少最终是这样。我想知道我是否能够顺利地从MySQL过渡到Ignite或任何其他支持高可用内存数据网格的技术。您可以使用缓存API而不是JDBC将数据插入Ignite。在这种情况下,数据将按预期传播到配置的第三方数据库中。我认为Denis并不完全正确。您仍然可以使用SQL,但Ignite只能查询驻留在Ignite中的数据。如果您在Ignite中有一个子集数据,在MySQL数据库中有一个超集数据,那么只有Ignite中的子集才会参与SQL查询。至于更新或插入,它们应该被写入MySQL数据库。@Dmitry,使用Ignite的JDBCAPI进行的更改是否传播到MySQL?e、 例如,我使用Ignite JDBC运行了一个update语句,希望在底层第三方(MySQL)存储中也会发生同样的更新。@IlyaZinkovich是的,就是这样。您可以在此dev@list线程中找到更多信息: