【问题标题】:How to set disruptor's ClaimStrategy buffersize如何设置中断者的 ClaimStrategy 缓冲区大小
【发布时间】:2012-11-26 11:06:54
【问题描述】:

现在我在使用disruptor,我得到一个consumer-productor的简单例子。它运行完美,但我不知道buffersize的含义,我应该设置它的大小?

private static final int BUFFER_SIZE = 4;

private final RingBuffer<StockEvent> ringBuffer =
    new RingBuffer<StockEvent>(StockEvent.EVENT_FACTORY,
                               new MultiThreadedLowContentionClaimStrategy(BUFFER_SIZE),
                               new YieldingWaitStrategy());
private final SequenceBarrier sequenceBarrier = ringBuffer.newBarrier();

BUFFER_SIZE 是什么意思?

【问题讨论】:

    标签: disruptor-pattern circular-buffer


    【解决方案1】:

    RingBuffer 具有固定的数组分配大小。它需要一个预设的缓冲区大小来启动所需的分配。建议将此大小保持在 11 以上(记住 bufferSize 应该是 2 的幂),但这取决于主机和您的架构。

    【讨论】:

    • 好的,我知道BUFFER_SIZE,它是ringbuffer数组的大小。试着认为它是一个队列,BUFFER_SIZE是队列的长度。
    • 实际上不能说这是队列长度,因为它的行为不同。恕我直言,您可以将其称为运行时缓冲区容量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 1970-01-01
    • 2017-05-29
    相关资源
    最近更新 更多