我正在使用Netty 4.我看到了Netty服务器的下列选项:WRITE_BUFFER_HIGH_WATER_MARK和WRITE_BUFFER_LOW_WATER_MARK.
官方页面相关文章链接到Norman Maurer的Netty最佳实践(带视频的幻灯片).幻灯片之一看起来像这样:
ServerBootstrap bootstrap = new ServerBootstrap();
bootstrap.childOption(ChannelOption.WRITE_BUFFER_HIGH_WATER_MARK, 32 * 1024);
bootstrap.childOption(ChannelOption.WRITE_BUFFER_LOW_WATER_MARK, 8 * 1024);
Run Code Online (Sandbox Code Playgroud)
并有这个前言:
设置理智的WRITE_BUFFER_HIGH_WATER_MARK和WRITE_BUFFER_LOW_WATER_MARK
但它是什么WRITE_BUFFER_HIGH_WATER_MARK和WRITE_BUFFER_LOW_WATER_MARK?以及如何让他们理智?
我没有找到任何明确的信息.谢谢你的帮助.
Aerospike客户端具有scanAll方法,用于从其存储中读取所有行.我在下面的代码中使用它:
ScanPolicy policy = new ScanPolicy();
policy.concurrentNodes = true;
policy.priority = Priority.DEFAULT;
policy.includeBinData = true;
policy.scanPercent = 100;
client.scanAll(policy, "namespaceName", "setName", new ScanCallback() {
@Override
public void scanCallback(Key key, Record record) throws AerospikeException {
STORE.put(key.userKey.toLong(), record.getValue("binName").toString());
}
});
Run Code Online (Sandbox Code Playgroud)
但它已完成NullPointerException
,因为userKey为null.所有其他字段均按预期有效.用户密钥是Long值,用于保存数据:
client.put(writePolicy, new Key("namespaceName", "setName", userKey), new Bin("binName", value));
Run Code Online (Sandbox Code Playgroud)
一切都很好,如果我这样做单一请求:
client.get(readPolicy, new Key("namespaceName", "setName", userKey));
Run Code Online (Sandbox Code Playgroud)
可能有什么不对?为什么userKey为空?