caching - Hazelcast 客户端和地图存储的不同(反)序列化
问题描述
我正在使用以下上下文运行 hazelcast 成员和客户:
- 我希望客户控制(反)序列化,并在没有 hazelcast 成员参与序列化业务的情况下加入新客户。
- 想要基于命名约定使 Hazelcast Map 持久化,例如所有具有“*Store”匹配模式的地图,需要持久化到 cassandra db。
- 由于我选择以二进制格式保存,我希望将存储在 hazelcast 中的相同 byte[] 提供给 mapstore 接口。
我的问题是 - hazelcast 似乎在调用 mapstore .store() 方法之前应用了反序列化器,并在服务器端查找具有原始存储 typeId 的序列化器类。合乎逻辑的解决方案是,如果我的 mapstore 类型是 byte[],hazelcast 不会为 mapstore 应用反序列化器,或者让我定义反序列化器,无论 typeId 是什么都可以工作。看起来两者似乎都不可能。
非常感谢任何解决该问题的想法。
解决方案
在默认情况下(内存格式设置为 BINARY)序列化和反序列化仅在客户端发生。但是,您使用的 MapStore 需要 Hazelcast 向MapStore.store方法提供实际的条目对象,因此需要在服务器上进行反序列化。否则,您只会在 MapStore 中收到一个 byte[]。
推荐阅读
- python-3.x - Python 3- 模块
- ios - 有没有办法在 swift 中使用 Mapbox 为标记设置动画或在多边形内循环移动?
- vba - 使用 VBA 在 PowerPoint 中逐步为形状制作动画
- ios - 再次播放 UIViewPropertyAnimator 时出现问题
- angular - Highcharts - 更多系列然后是数据
- javascript - 错误:对象作为 React 子级无效如果您要渲染子级集合,请改用数组。点击注册后
- javascript - 如何在不添加 get 参数的情况下破坏 JavaScript 文件的缓存?
- ruby-on-rails - 显示来自控制器关注的闪光警报
- java - 如何从查询中仅提取 java 中的数据库名称(Bucket name wrt Couchbase)
- javascript - 自定义 wordpress 主题上的弹出框,我希望在用户关闭它 2 次之前一直可见