使用完全相同的代码,高频 hazelcast ringbuffer 客户端不更新但低频客户端是

Using exactly the same code, a high frequency hazelcast ringbuffer client not updating but low frequency client is

我有下面的代码用来监听各种ringbuffer。有的是高频价格数据,有的是低频交易数据:

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 集群,当数据发布到环形缓冲区时,它会被读取和操作。然而,对于大量数据大量发布到环形缓冲区的高频数据,上面的 reader 启动,并自动发现 hazelcast 集群,但随后根本不读取任何数据......虽然在1 次它确实成功了。

我也试过

long sequence = databuffer.tailSequence() + 1;

对可能出现的问题有什么想法吗?

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

效果不错