使用 hazelcast 滚动升级多个 java 个独立应用程序(apache camel 实例)

Rolling upgrade of multiple java standalone applications (apache camel instances) with hazelcast

我有多个独立 java 应用程序 (apache camel) 的实例,hazelcast IMDG 存储信息(在 IMaps 中),任何应用程序实例都应该访问这些信息。 每个 IMap 都包含字符串作为键和一些自定义对象作为值。

我的主要问题是 - 如果当前 运行 和新版本在 IMap 结构上存在差异(自定义对象已更改),当我开始部署更新的应用程序并且它们连接到活动的 hazelcast 集群时 - 它会导致错误和集群关闭。

这不是蓝绿部署策略,更新后我需要拥有所有以前存储的 hazelcast 数据。

在类似情况下是否有已知的滚动升级开源解决方案? 或者也许有人可以为我指出正确的方向。

P.S。 Hazelcast 具有滚动升级功能,但仅限于企业 (https://hazelcast.com/products/rolling-upgrade/)

@IvanDanyakin 如果您想维护地图条目的不同版本,那么您应该考虑使用可移植序列化。这是文档的 link:http://docs.hazelcast.org/docs/3.9/manual/html-single/index.html#versioning-for-portable-serialization

滚动升级用于升级 运行 集群中的 Hazelcast 服务器版本,即无需关闭集群。