Apache Ignite应用程序部署而不重新平衡

时间:2018-04-19 07:12:21

标签: java spring rest ignite

我正在使用Apache Ignite,它嵌入在spring应用程序中(使用tomcat)作为rest api服务器。

就我而言,所有节点都是服务器作为数据网格。它们在内存中提供特定数据。每个物理服务器只有一个应用程序,它们由apache点燃聚类。

但我有一个问题。

如果我发现该API存在严重错误,我需要修复和部署。

所以我必须部署所有应用服务器。在那个时候,我应该重启tomcat每个服务器,然后发生重新平衡。它会在重新平衡期间降低响​​应性能,因此有时My API将无法使用。

我的问题是,我应该在部署应用程序时始终重新平衡数据吗? 如果那时,如果群集由数千个节点组织,我应该进行数千次重新平衡吗?或者还有其他想法吗?

希望对你有所帮助,谢谢。

1 个答案:

答案 0 :(得分:5)

您可以配置一个时间间隔,在此期间不会自动触发重新平衡。 CacheConfiguration#rebalanceDelay参数负责。

这样,节点离开后不会立即触发重新平衡。数据需要仅重新平衡到重新启动的节点。

如果您根本不想进行任何重新平衡,则可以配置native persistence并设置baseline topology。这样,即使重启后数据也会保留在节点上。除非您手动更改基线拓扑,否则不会发生任何数据重新平衡。请注意,从版本2.4开始,基线拓扑功能可用。在以前的版本中,您可以使用具有重新平衡延迟的本机持久性。

使用deployment SPI也可以在没有群集重启的情况下执行某些代码更改。但目前只有compute tasks才能以这种方式更新。