我有以下代码用于监听各种ringbuffers。一些是高频价格数据,一些是低频交易数据:
public static void main(String[] args)
{
HazelcastInstance client = Hazelcast.newHazelcastInstance();
Ringbuffer<String> databuffer = client.getRingbuffer("data");
long sequence = databuffer.headSequence();
while(true)
{
String d = null;
try
{
d = databuffer.readOne(sequence);
System.out.println(d);
}
catch (InterruptedException e)
{
StringWriter errors = new StringWriter();
e.printStackTrace(new PrintWriter(errors));
System.out.println(errors.toString());
}
sequence ++;
}
}
问题是用于低频交易数据的相同代码工作正常:自动发现hazelcast集群,当数据发布到ringbuffer时,它被读取并被操作。然而,对于大量数据以高容量发布到环形缓冲区的高频数据,上面的阅读器启动,并自动发现了淡褐色群集,但之后根本没有读取任何数据...虽然有一次它做了设法工作。
我也试过
long sequence = databuffer.tailSequence() + 1;
关于可能出错的任何想法?
答案 0 :(得分:0)
这是我自己的问题,因为我实际上并没有发布我想听的数据。 Aaargh!
效果很好。