升级到二进制不兼容版本的 Ignite 的策略

Strategy for upgrading to a binary-incompatible version of Ignite

我正在评估 Apache Ignite 数据网格的生产用途。

其中一个关键要求是要有一个明确的策略来将大型系统升级到二进制不兼容的版本(在使用像 Ignite 那样的二进制协议时通常是不可避免的)。更具体地说,从大量 Ignite 客户端节点组件独立(之前或之后)升级 Ignite 基础设施 and/or Ignite 瘦客户端。

所以想知道这样的过程会是什么样子,因为实际上不可能将系统的所有组件升级为大爆炸的情况。

首先,Ignite 关心其二进制格式的兼容性,并且在没有一些回退机制的情况下不会更改它。特别是,保留了持久存储的向后兼容性(升级和继续使用相同数据库文件的能力)。

其次,要升级生产集群,可以使用 GridGain(构建于 Ignite 之上)提供的滚动升级功能。详情见此:https://docs.gridgain.com/docs/rolling-upgrades.

如果您的主要 objective 客户端是在升级过程中无需停机即可访问集群的客户端,我建议这些客户端中的大多数应该是 'thin' 客户端,例如 JDBC 客户端, ODBC 客户端、REST 或 Java/C#/C++/node.js 瘦客户端,目前正在积极开发中。他们没有严格的版本检查。

因此您应该避免使用 'thick' 客户端(a.k.a。Apache Ignite 客户端节点)并且仅用于瘦客户端无法执行的操作。或者如上所述使用滚动升级。