Настройка
- Автономный экземпляр Kafka
- MySQL база данных как хранилище событий
- Служба команд, реализованная с использованием SpringBoot и AxonFrameowrk Kafka Extension
- Командная служба развернута в кластере K8S
Тестовый сценарий
Сценарий Jemeter с 500 одновременными тестовыми пользователями, запускающими команду через REST
Командная служба с один экземпляр - Все успешно
Служба команд масштабируется до 2 экземпляров - Все успешно
Служба команд масштабируется до 3 или 4 экземпляров - Ошибки наблюдаются для определенных запросов, за исключением, как показано ниже
ERROR[0;39m o.a.c.c.C.[.[.[.[dispatcherServlet].log - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.axonframework.messaging.EventPublicationFailedException: Event publication failed: Exception occurred while committing kafka transaction]
Проверен источник расширения kafka и можно было видеть, что это исключение сопоставлено с ProducerFencedException
Кажется, что оно генерирует повторяющиеся идентификаторы событий / транзакций, когда службы команд горизонтально масштабируются.
Пожалуйста, предложите remidy или альтернативу, чтобы избежать этих ex рецепции.