RocksReduListener
Слушатель REDU-событий для синхронизации содержимого RocksDB через брокер сообщений.
Назначение:
На ACTIVE-узле отвечает на
REDU_INITотправкой снапшота БД, разбитого на чанки.На STANDBY-узле принимает чанки, собирает ZIP, разворачивает снапшот, инициализирует RocksDB и догоняет до нужного
seq.После успешной инициализации публикует событие
rocksdbColdStartReadyвEventBus.
Потоки и конкурентность:
В
init{}поднимаются два демона:thread-redu-master-eventsиthread-redu-slave-events.Передача выполняется чанками размером
CHUNK_SIZE = min(MessageBroker.CHUNK_SIZE, MAX_BROKER).
Файлы и каталоги:
Временные чекпойнты создаются в
java.io.tmpdirи удаляются после отправки/применения.Снапшот разворачивается в
${nosqlBaseDir}/${nosqlTableSpace}.
Ограничения и надёжность:
Снапшот отправляется без сжатия (ZIP,
Deflater.NO_COMPRESSION) для минимизации CPU.Идентификатор снапшота
snapshotIdиchunkIndexпозволяют получателю устранять дубликаты.Поле
seqфиксирует целевой номер события для последующего догоняния (catchUpTo).
Parameters
Брокер сообщений, используемый для подписки и публикации служебных пакетов снапшота.