具有混合持久性/非持久性缓存节点的点火群集
在我的Apache Ignite 2.3群集中,我想运行一个节点(可能在将来需要两个备份),并将其复制缓存保留在磁盘上。我需要确保此节点始终处于运行状态,而其他缓存节点不具有持久性配置,因此只能在内存中访问缓存。这些非永久性节点可以随时按需进出,因为它们用于计算,但不用于存储数据。具有混合持久性/非持久性缓存节点的点火群集
当连接了非持久节点时,持久节点关闭时会发生什么?理想情况下,缓存对于整个群集应该消失,但不会。所有节点都继续在内存中使用缓存。但是这意味着新的数据永远不会在磁盘上,并在集群重启后消失。 我的混合持久/非持久节点的配置不常见吗?我将如何保持这种类型的集群一致?
任何背景帮助表示赞赏。
回答:
您可以设置节点过滤器,你的缓存配置和排除计算节点:
https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/configuration/CacheConfiguration.html#setNodeFilter(org.apache.ignite.lang.IgnitePredicate)
这样缓存将只在特定的一组您定义的节点进行存储。
要明显点燃的情况下,可以使用用户属性在点燃配置: https://apacheignite.readme.io/docs/cluster#section-cluster-node-attributes
回答:
你可以配置你的缓存,仅存储在单个节点上。所以,当它停止时,缓存停止运作。可以通过使用node attributes和node filter来完成。
但在此配置中,每个请求都将发送到单个节点,从而使其他节点的工作变慢。如果你想避免它,请考虑使用near cache。
回答:
这是不可能的;在高速缓存级别启用持久性,因此部署此高速缓存的所有节点都会将数据保存到磁盘。
此外,我不认为你会从这种部署中受益。如果它是一个复制缓存,并且您启动了一个新节点,则需要在数据可用于内存之前将这些数据复制到此新节点。在重新平衡未完成之前,您将对此数据进行远程调用。从磁盘加载它不会更慢,可能要快得多。
以上是 具有混合持久性/非持久性缓存节点的点火群集 的全部内容, 来源链接: utcz.com/qa/258710.html