微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以将 MAP 作为值存储到 Hazelcast 中的 MULTIMAP 中?

如何解决是否可以将 MAP 作为值存储到 Hazelcast 中的 MULTIMAP 中?

是否可以将 MAP 作为值存储到 Hazelcast 中的 MULTIMAP 中? 请在下面找到示例代码

Map userSessionData = client.getMap("userSessionData"); userSessionData.put(userId,userData.getSessionId());

MultiMap >stitutionUsersData = client.getMultiMap("institutionUsersData"); 机构用户缓存.put(机构名称,用户会话数据);

在尝试使用上面的代码时,它在下面抛出异常,

com.hazelcast.nio.serialization.HazelcastSerializationException:无法序列化“com.hazelcast.client.proxy.ClientMapProxy” 在 com.hazelcast.internal.serialization.impl.SerializationUtil.handleSerializeException(SerializationUtil.java:82) 在 com.hazelcast.internal.serialization.impl.AbstractSerializationService.toBytes(AbstractSerializationService.java:157) 在 com.hazelcast.internal.serialization.impl.AbstractSerializationService.toBytes(AbstractSerializationService.java:133) 在 com.hazelcast.internal.serialization.impl.AbstractSerializationService.toData(AbstractSerializationService.java:118) 在 com.hazelcast.internal.serialization.impl.AbstractSerializationService.toData(AbstractSerializationService.java:106) 在 com.hazelcast.client.spi.ClientProxy.toData(ClientProxy.java:98) 在 com.hazelcast.client.proxy.ClientMultiMapProxy.put(ClientMultiMapProxy.java:112)

引起:com.hazelcast.nio.serialization.HazelcastSerializationException:没有适合类 com.hazelcast.client.proxy.ClientMapProxy 的序列化程序 在 com.hazelcast.internal.serialization.impl.AbstractSerializationService.serializerFor(AbstractSerializationService.java:487) 在 com.hazelcast.internal.serialization.impl.AbstractSerializationService.toBytes(AbstractSerializationService.java:146)

解决方法

Hazelcast 地图故意不可序列化,因为它们是远程和并发的。内容将因使用地图的其他客户端的插入/更新/删除而更改。

如果您检索地图的 entrySet(),您可以拍摄快照。 这可能超出客户的承受能力。

要将这个快照存储回 Hazelcast,它需要进入一个可序列化的集合,例如 HashMap

如果是会话,这样的快照会在特定时间点显示用户,并且不会随着用户登录和退出而改变。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。