跨节点的Hazelcast数据传输

时间:2017-11-17 15:54:25

标签: hazelcast

如果我在群集node1和node2中有两个hazelcast节点

如果我插入<key1,value1&gt;到imap,并假设node1拥有<key1,value1&gt;(主要)当node1存储它转换的数据<key1, value1&gt;到字节并保存。

1)  如何将此数据传输到node2。当<key1, value1&gt;是作为字节传输到node2,node2会直接保存这些字节还是将它们反序列化为各自的类型,然后序列化回字节并保存?

2)如果将新字段添加到value1类型并且重新启动node1。当数据从node2备份到node1时,value1的字节是否会转移到node1
a)将被预期为node1中的value1类型,该类型由新字段组成,然后序列化回字节并存储在node1或
中 b)来自node2的value1传输到node1的字节直接存储而没有任何转换,这些字节不包含添加到value1类型的字段?

1 个答案:

答案 0 :(得分:0)

在Hazelcast中,备份数据以二进制形式存储。

默认情况下,备份是同步的,即在更新备份副本之前不会返回PUT请求。因此备份不会不同步。

Hazelcast支持3种内存存储格式BINARY(默认,访问速度),OBJECT(适用于入口处理器和查询)和NATIVE(密钥和存储在堆外的值)。 使用BINARY格式时,客户端BINARY只需要反序列化,因此速度更快。

如果值以OBJECT格式存储,则返回值的更改不会影响存储的实例。在这种情况下,返回的实例不是实际的实例,而是克隆。因此,返回对象后所做的更改将不会反映在实际存储的数据上。类似地,当将值写入映射并且值以OBJECT格式存储时,它将是put值的副本。因此,存储对象后所做的更改将不会反映存储的数据。