Я новичок в Disruptor. У меня есть следующие два вопроса:Как работает LMAX Disruptor с несколькими производителями с общей переменной?
Q1. Я получил пример кода one producer to one consumer и one producer to multiple dependent consumers,
Мне нравится получить образец кода для нескольких производителей для нескольких потребителей или секвенсера: 3P - 1C. Можете ли вы сослаться на любые блоги или образцы кода для меня?
Q2. Это общий вопрос, связанный с множественной производственной средой, как результат одного производителя будет связан с результатом предыдущего производителя в кольцевом буфере.
например: Is Disruptor может использоваться в среде, где один файл/переменная обновляется несколькими производителями. то есть есть два производителя (P1, P2), которые обновляют одну общую переменную (называемую «счет»). (Здесь count - переменная экземпляра в классе ValueEvent)
Первоначально значение «count» равно 0.
Производитель P1 добавит 1 с текущим значением «count». Таким образом, после обработки производителем P1 значение счета будет (0 + 1) = 1.
Производитель P2 добавит 2 с текущим значением «count», поэтому после обработки производителем P2 значение счета будет (1 + 2) = 3.
В принципе, P2 должен прочитать обновленное значение «count» (сделанное P1) из буфера кольца и добавить добавочное значение (2).
Как мы можем поддерживать порядок выполнения производителей? (Р2 будет выполняться всегда после выполнения P1.)
На стороне потребителя, потребители (C1, C2) будет читать «считать» значение, как последовательно (1,3,.,.,.). Это нормально, так как в кольцевом буфере каждый потребитель будет считывать значение буфера кольца только в последовательном порядке.
Thanks, Prasenjit.