entaxy-public/documentation/connectors/uniform-exchange-service/ignite.adoc

2.9 KiB
Raw Permalink Blame History

IGNITE

IgniteAggregationRepository сделано на основе JdbsAggregationRepository документация https://help.talend.com/reader/Uc2IlRuFVfGrjaFPdRI7kA/fBdqK2kf6iIkLHQf9nLh6g

Есть некоторые внутренние баги karaf, которые не позволяют установить некоторые ignite фичи в караф https://github.com/apache/ignite/blob/fd921a233d35408883695419b6f9979ac674d1b9/modules/osgi-karaf/src/main/resources/features.xml#L87

В карафе поднимается ignite, с рабочей директорией, прописанной в ru.entaxy.esb.ignite.cfg, в параметре ignite.work.directory.path. Это место, где игнайт создает для себя все, что нужно, и будет хранить данные.

Ignite настроен с сохранением персисетнтности данных(сохранением их на диск) и созданием реплицации(бэкапов) на других узлах кластера.(при потере одной ноды, другие восстановят данные, которе хранились на текущем узле)

IGNITE_QUIET=false - параметр необходимый для того, чтобы игнайт не писал информацию о себе в лог, для того что бы параметр применился, необходимо выставить setGridLogger, смогла установить в караф только JclLogger.

AggregationProcessor

AggregationProcessor стандартный, не расчитан на работу в кластере из-за чего пришлось вытаскивать исходники и редактировать сам процессор.(AggregationProcessorWithRestoreTimeout) Т к теперь AggregationProcessor вызывается как bean, а не как стандартный камеловский процессор, то процесс старта и остановки происходит в отличном порядке.

Для работы к кластере: - добавлен механизм восстановления работы таймаутов на других нодах, - отредактирован механизм удаления сообщения из репозитория(возникало состояние гонки и появлялись дубликаты), - исправлен механизм продолжения работы с "застрявшими" сообщениями (recoverTask из таблицы _completed) - добавлен безопасный механизм забора сообщений из очереди(восстановление сообщения в очереди, если не пришло подтверждение)