Я использую Axon Framework 4.0.3 с Spring Boot, чтобы получать источники событий, и у меня есть один процессор отслеживания, настроенный на одновременную обработку нескольких сегментов / потоков:
axon.eventhandling.processors[my_processor].initial-segment-count = 6
axon.eventhandling.processors[my_processor].thread-count = 3
Предполагается иметь 2 узла my_processor
, используя 3 потока в каждом.
Однако проблема этого решения в том, что оно не масштабируется. Я должен знать с самого начала, сколько узлов и потоков у меня должно быть, так как это невозможно изменить позже: если я увеличу initial-segment-count
и перезапущу процессор, ничего не произойдет. Еще хуже, если я уменьшу количество сегментов: события, которые предназначались для «удаленных» сегментов, никогда не обрабатываются!
В идеале он должен иметь возможность указать только количество потоков, которые должен использовать каждый узел. После этого, когда новые узлы добавляются в процессор, количество сегментов должно соответственно увеличиваться. Аналогично, если я удаляю узлы, количество сегментов должно уменьшаться. Возможно ли это с Аксоном или он вообще не предназначен для такого масштабирования?