我们有 5 个 Riak 节点的集群。我们使用 riak-java-client 与 Riak 一起工作,通常用于创建、读取、删除数据。不幸的是,我们在从 riak 读取旧对象时遇到了问题。有时当我们按键读取对象时,我们会得到空值。当我们尝试重复阅读时,我们会通过相同的键获得正确的对象。它看起来很奇怪。我们应该怎么做,如何诊断这个问题?请问有什么想法吗?这是从 Riak 读取对象的代码:
String uuid = <keyInRiak>;
Namespace bucket = new Namespace("default", "default");
Location location = new Location(bucket, uuid);
FetchValue fetchValue = new FetchValue.Builder(location).build();
FetchValue.Response response = riakClient.execute(fetchValue);
if (!response.isNotFound()) {
RiakObject riakObject = response.getValue(RiakObject.class);
if(riakObject != null) {
BinaryValue binaryValue = riakObject.getValue();
byte[] result = binaryValue != null ? binaryValue.getValue() : null;
... process result ...
}
}