我正在评估Voldemort,并遇到了一些与复制和故障转移相关的令人困惑的事情。我尝试制作一个简单的2节点集群配置,其中每个节点都是另一个节点的备份。因此,写入节点1的数据应该复制到节点2,反之亦然。在节点1故障转移的情况下,第二节点应该为客户端请求提供服务。在节点1之后,恢复数据应该转移回节点1.我认为这是非常常见和明确的情况。所以我做了以下配置。
<cluster>
<name>perf_cluster</name>
<server>
<id>0</id>
<host>10.50.3.156</host>
<http-port>8081</http-port>
<socket-port>6666</socket-port>
<admin-port>6667</admin-port>
<partitions>0, 1, 2, 3</partitions>
<zone-id>0</zone-id>
</server>
<server>
<id>1</id>
<host>10.50.3.157</host>
<http-port>8081</http-port>
<socket-port>6666</socket-port>
<admin-port>6667</admin-port>
<partitions>4, 5, 6, 7</partitions>
<zone-id>0</zone-id>
</server>
</cluster>
<stores>
<store>
<name>perftest</name>
<persistence>memory</persistence>
<description>Performance Test store</description>
<owners>owner</owners>
<routing>client</routing>
<replication-factor>2</replication-factor>
<required-reads>1</required-reads>
<required-writes>1</required-writes>
<key-serializer>
<type>string</type>
</key-serializer>
<value-serializer>
<type>java-serialization</type>
</value-serializer>
</store>
</stores>
我执行以下测试:
我更确信我误解了配置或群集复制细节方面的内容。您能否澄清为什么恢复后数据不会从节点0复制回节点1?我是对的,复制是客户的责任,而不是服务器?如果是这样,节点恢复后如何复制数据?
提前致谢。
答案 0 :(得分:0)
我不知道你是否已经解决了这个问题,但请看一下:http://code.google.com/p/project-voldemort/issues/detail?id=246
请记住,内存存储仅用于测试(junit)目的,您应该使用readonly或bdb存储。