我正在寻找此功能,以便能够通过顶部的 Ignite 层写入 Cassandra,类似于 Cassandra 支持“带有”时间戳功能的方式,以便可以消除过时的更新。 我们希望通过 Ignite 进行写入的原因是,我们可能会在写入后立即收到读取调用,并且 API 需要提供最新的服务,而不是等待 Ignite Cache 上的 TTL 或 LRU。 另一方面,我们可以直接写入 Cassandra,然后使该条目无效/删除以确保提供最新数据。但还有更好的方法吗?
最佳答案
看来您需要的是一个启用了读通和写通的缓存。创建一个具有类似于以下配置的缓存:
<bean class="org.apache.ignite.configuration.CacheConfiguration">
<property name="name" value="cache1"/>
<property name="readThrough" value="true"/>
<property name="writeThrough" value="true"/>
<property name="cacheStoreFactory">
<bean class="org.apache.ignite.cache.store.cassandra.CassandraCacheStoreFactory">
<!-- ... -->
</bean>
</property>
</bean>
当您写入此缓存时,写入内容将同步传播到 Cassandra,当您读取它时,Ignite 将从 Cassandra 中获取该值(如果还没有)。
注意:如果您直接写信给 Cassandra,Ignite 将不会知道这一点,并将继续提供过时的值。使用直读和直写时,最好通过 Ignite 路由所有写入。
关于cassandra - 使用 "with"时间戳通过 Ignite 写入 Cassandra,以消除对 Cassandra 的陈旧写入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60962037/