Я новичок в Disruptor. У меня есть следующие два запроса:
Q1. Я получил пример кода от одного производителя к одному потребителю и от одного производителя к нескольким зависимым потребителям,
Мне нравится получать образец кода для нескольких производителей для нескольких потребителей или Sequencer: 3P – 1C. Не могли бы вы сослаться на какие-нибудь блоги или образцы кода?
Q2. Это общий вопрос о том, как в среде с несколькими производителями результат одного производителя будет связан с результатом предыдущего производителя в кольцевом буфере.
например: Disruptor можно использовать в среде, где один файл/переменная обновляется несколькими производителями. т. е. есть два производителя (P1, P2), которые обновляют одну общую переменную (названную как «count»). (Здесь count — это переменная экземпляра в классе ValueEvent)
Изначально значение «count» равно 0.
Производитель P1 добавит 1 к текущему значению "count". Таким образом, после обработки производителя P1 значение count будет (0+1) = 1.
Производитель P2 добавит 2 к текущему значению «count», поэтому после обработки производителя P2 значение count будет (1 + 2) = 3.
По сути, P2 должен прочитать обновленное значение «счетчика» (сделанное P1) из кольцевого буфера и добавить увеличенное значение (2).
Как мы можем поддерживать порядок выполнения производителей? (P2 всегда будет выполняться после выполнения P1.)
На стороне потребителя потребители (C1,C2) будут считывать значение «count» как последовательно (1,3,.,.,.). Это нормально, так как в кольцевом буфере каждый потребитель будет считывать значение кольцевого буфера только в последовательном порядке.
Спасибо, Прасенджит.