1

我正在使用嵌入式 Infinispan ,并且在模式下10.1.8有一个集群缓存。INVALIDATION_SYNC缓存由另一个很少更新的数据存储支持,这就是它处于该模式的原因。

当服务器离开集群时,Infinispan 会记录如下消息:

[Context=<cache name>] ISPN000312: Lost data because of graceful leaver <address>

该服务器上缓存中的任何内容都会从内存中丢失,但由于它是一个失效缓存,我不明白为什么这会是一个警告。

警告是不必要的,还是我误解了这种缓存的工作原理?

4

1 回答 1

1

我认为只有当您以没有意义的方式使用该模式时,失效模式中的警告才有意义。

这种缓存模式只有在您有另一个永久存储数据(例如数据库)并且仅在读取繁重的系统中使用 Infinispan 作为优化以防止每次读取都命中数据库时才有意义。

资料来源:https ://infinispan.org/docs/dev/titles/configuring/configuring.html#invalidation-configuring

当您拥有这样一个永久存储时,您实际上只是丢失了有关“丢失”但易于恢复的段的缓存处于何种状态的信息。

当缓存段不再由任何节点支持时,始终会记录警告: https ://github.com/infinispan/infinispan/blob/10.1.8.Final/core/src/main/java/org/infinispan/partitionhandling /impl/PreferAvailabilityStrategy.java#L54 https://github.com/infinispan/infinispan/blob/10.1.8.Final/core/src/main/java/org/infinispan/topology/ClusterTopologyManagerImpl.java#L785

当您使用不受永久存储支持的复制缓存时,您确实会丢失数据。我想不出警告在失效模式下有意义的情况。我认为在这种情况下,应该删除警告,因为它很烦人。

于 2021-02-07T01:45:06.170 回答