Автоматически масштабировать процессоры отслеживания событий Axon - PullRequest
3 голосов
/ 12 марта 2019

Я использую 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 и перезапущу процессор, ничего не произойдет. Еще хуже, если я уменьшу количество сегментов: события, которые предназначались для «удаленных» сегментов, никогда не обрабатываются!

В идеале он должен иметь возможность указать только количество потоков, которые должен использовать каждый узел. После этого, когда новые узлы добавляются в процессор, количество сегментов должно соответственно увеличиваться. Аналогично, если я удаляю узлы, количество сегментов должно уменьшаться. Возможно ли это с Аксоном или он вообще не предназначен для такого масштабирования?

1 Ответ

3 голосов
/ 13 марта 2019

Это предположение с вашей стороны совершенно верно - просто настройка этих полей не масштабируется, во время выполнения . Именно поэтому мы ввели операции разделения и слияния для разделения / слияния сегментов во время выполнения приложения Axon. См. этот запрос на GitHub для его введения в среду.

Эта функция будет частью Axon 4.1, которая будет выпущена сегодня. Обратите внимание, что если вы используете только фреймворк, эта функция не обеспечивает автоматическое масштабирование. Это потребует реализации с вашей стороны, используя предоставленный API для разделения и слияния, чтобы сделать его автоматическим.

Axon Server , с другой стороны, предоставляет вам кнопку разделения / слияния в пользовательском интерфейсе, освобождая вас от необходимости создавать это самостоятельно. Я вполне уверен, что Axon Server также в конечном итоге представит решение для автоматического масштабирования, но не как часть выпуска 4.1.

Надеюсь, это даст вам некоторый опыт, Арчи!

...