与Apache Ignite 2.11.0兼容的GridGain版本及迁移问题咨询
Apache Ignite 2.11.0迁移GridGain社区版相关解答
兼容版本说明
GridGain社区版的版本线和Apache Ignite是严格对齐构建的,GridGain社区版8.8.x全系列小版本(推荐选该系列最新稳定小版本) 是唯一和Apache Ignite 2.11.0完全兼容的版本:
- 节点间通信协议、持久化存储格式、公开API完全对齐
- 支持GridGain 8.8.x节点和Ignite 2.11.0节点混部组成集群,为滚动迁移提供基础
- 注意不要选择8.9及以上的GridGain版本,这类版本对齐Ignite 2.12+的内核,和2.11.0存在协议、持久化格式的不兼容问题,无法直接对接。
迁移至GridGain社区版的操作步骤
根据业务是否允许停服,可以选两种迁移方案,全程不需要做数据的导出导入,GridGain可以直接读取Ignite 2.11.0生成的持久化文件:
- 不停服滚动迁移(推荐线上生产集群使用)
- 提前在测试环境用现有业务配置、业务流量做兼容性验证,同时全量备份线上集群的持久化目录、配置文件,预留回滚方案
- 逐台操作集群节点:先停止单台Ignite节点,等待集群将该节点承载的数据分区重平衡到其余在线节点后,替换节点上的二进制包为GridGain 8.8.x版本,沿用原有Ignite的所有配置(包括集群发现配置、缓存定义、持久化路径、鉴权配置等)启动节点
- 等待新启动的GridGain节点成功加入集群、数据重平衡完成、节点状态正常后,再操作下一台节点,直到所有节点替换完成
- 全节点替换完成后,校验集群拓扑状态、缓存数据一致性、业务读写链路正常即可
- 停服迁移(适合测试环境、允许短时间停服的小型集群)
- 备份全集群数据和配置后,停止所有Ignite节点
- 全量替换所有节点的二进制包为GridGain 8.8.x版本,沿用原有配置逐台启动节点
- 校验集群状态和业务可用性即可
.NET Core技术栈的代码改动说明
正常业务场景下可以做到无业务代码改动直接迁移:
- 你只需要将项目中原来引用的
Apache.Ignite2.11.0版本NuGet包,替换为对应8.8.x版本的GridGain.Ignite社区版NuGet包即可,两个包的公开API签名、命名空间规则、序列化逻辑、配置模型完全一致,业务层代码不需要做任何调整 - 仅两种极端场景需要做少量适配:
- 代码中直接引用了Ignite的内部非公开API(即
Internal命名空间下的类、方法) - 配置文件中硬编码写死了
Apache.Ignite相关的程序集全限定名,这类只需要修改配置里的程序集名称即可,不需要改动业务逻辑
- 代码中直接引用了Ignite的内部非公开API(即
内容的提问来源于stack exchange,提问作者Ali Bagheri
相关产品推荐
相关产品推荐

