在我在 EC2 上的测试设置中,我完成了以下操作:
- 一个 Aerospike 服务器正在 ZoneA 中运行(比如 Aerospike-A)。
- 同一集群的另一个节点正在 ZoneB 中运行(例如 Aerospike-B)。
- 使用上述集群的应用程序正在 ZoneA 中运行。
我正在像这样初始化 AerospikeClinet:
hosts= new Host[]; hosts[0] = new Host(PUBLIC_IP_OF_AEROSPIKE-A, 3000); AerospikeClient client = new AerospikeClient(policy, hosts);
通过上述设置,我得到以下行为:
- Aerospike-A 和 Aerospike-B 上都发生了写操作。
仅在 Aerospike-A 上进行读取(数据大约 100 万条记录,占用 900MB 内存和 1.3 GB 磁盘)
Question: Why are reads not going to both the nodes?
- 如果我把 Aerospike-B 拿下来,一切都会完美无缺。没有中断。
如果我关闭 Aerospike-A,所有的写入和读取都开始失败。我已经等了 5 分钟让其他节点占用流量,但它没有用。
Questions: a. In above scenario, I would expect Aerospike-B to take all the traffic. But this is not happening. Is there anything I am doing wrong? b. Should I be giving both the hosts while initializing the client? c. I had executed "clinfo -v 'config-set:context=service;paxos-recovery-policy=auto-dun-all'" on both the nodes. Is that creating a problem?