0

我有以下代码用于收听各种环形缓冲区。有些是高频价格数据,有些是低频交易数据:

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 时,它会被读取并执行。但是,对于大量数据发布到 ringbuffer 的高频数据,上面的阅读器启动,并自动发现 hazelcast 集群,但随后根本不读取任何数据......虽然有一次它做到了设法工作。

我也试过

long sequence = databuffer.tailSequence() + 1;

关于可能出了什么问题的任何想法?

4

1 回答 1

0

这是我自己的问题,因为我实际上并没有发布我想听的数据。啊!

它运作良好。

于 2015-09-08T11:32:03.053 回答