Миграция#

Миграция с Confluent Schema Registry#

Для миграции с Confluent Schema Registry выполните следующие шаги:

  1. Запустите пустой реестр Corax.

  2. Запустите утилиту импорта данных crx-schema-registry-data-import.sh:

    bin/crx-schema-registry-data-import.sh --config <путь до файла конфигурации schema-registry.properties> import --from-topic <Confluent топик для миграции> --format CONFLUENT
    

Реестр Corax наполнится данными, отчет об импорте будет выведен в консоль и в лог-файл.

Миграция на 13.391.0#

  1. Остановите все узлы реестра.

  2. Обновите сервера Corax на 13.X версию.

  3. Внесите изменения в schema-registry.properties:

    Замените параметры:

    Важно

    Строго не рекомендуется менять значение параметров на значения, отличные от приведенных в таблице.

    Параметр

    Старое значение

    Новое значение

    spring.kafka.schema.producer.key-serializer

    org.apache.kafka.common.serialization.VoidSerialize

    ru.sbrf.kafka.schemaregistry.schemas.SchemaKeySerde.KeySerializer

    spring.kafka.schema.producer.value-serializer

    ru.sbrf.kafka.schemaregistry.schemas.SchemaSerde.SchemaSerialize

    ru.sbrf.kafka.schemaregistry.schemas.SchemaValueSerde.ValueSerializer

    spring.kafka.schema.consumer.key-deserializer

    org.apache.kafka.common.serialization.VoidDeserializer

    ru.sbrf.kafka.schemaregistry.schemas.SchemaKeySerde.KeyDeserializer

    spring.kafka.schema.consumer.value-deserializer

    ru.sbrf.kafka.schemaregistry.schemas.SchemaSerde.SchemaDeserializer

    ru.sbrf.kafka.schemaregistry.schemas.SchemaValueSerde.ValueDeserializer

    Удалите параметр schema.registry.rest.mode.mutability. Теперь IMMUTABLE/MUTABLE режим включается REST-запросом mutability.

    Создайте переменную среды SOURCE_TOPIC="_crx_schemas". Если есть параметр schema.registry.rest.schemas.topic.name — сохраните его значение в переменной среды SOURCE_TOPIC и удалите параметр.

  4. Вызовите утилиту миграции топика для конвертации старого топика в новый:

    bin/crx-schema-registry-data-import.sh --config <путь до файла конфигурации schema-registry.properties> --topic <целевой топик/топик, где хранятся схемы> import --from-topic ${SOURCE_TOPIC} --format CORAX9
    

    Целевой топик будет создан с фактором репликации 2.

    Новый топик будет создан с фактором репликации 2.

  5. Запустите узлы реестра.

Изменения в параметрах настройки#

Удаленные параметры#

Конфигурационный файл

Параметр

Описание

schema-registry.properties

schema.registry.rest.mode.mutability

IMMUTABLE/MUTABLE режим включается REST-запросом mutability

Измененные параметры#

Конфигурационный файл

Параметр

Значение

Старое имя

Новое имя

Старое значение

Новое значение

schema-registry.properties

schema.registry.rest.schemas.topic.name

"_schemas"

_crx_schemas

schema.registry.rest.schemas.topic.replication.factor

1

schema.registry.rest.schemas.acl.topic.name

schema.registry.rest.acl.topic.name

"_schemas_acl"

_crx_acl

schema.registry.rest.acl.topic.replication.factor

1

spring.kafka.schema.producer.key-serializer

org.apache.kafka.common.serialization.VoidSerialize

ru.sbrf.kafka.schemaregistry.schemas.SchemaKeySerde.KeySerializer

spring.kafka.schema.producer.value-serializer

ru.sbrf.kafka.schemaregistry.schemas.SchemaSerde.SchemaSerialize

ru.sbrf.kafka.schemaregistry.schemas.SchemaValueSerde.ValueSerializer

spring.kafka.schema.consumer.key-deserializer

org.apache.kafka.common.serialization.VoidDeserializer

ru.sbrf.kafka.schemaregistry.schemas.SchemaKeySerde.KeyDeserializer

spring.kafka.schema.consumer.value-deserializer

ru.sbrf.kafka.schemaregistry.schemas.SchemaSerde.SchemaDeserializer

ru.sbrf.kafka.schemaregistry.schemas.SchemaValueSerde.ValueDeserializer

Откат Corax Schema Registry версии 13.X#

  1. Переведите все узлы в IMMUTABLE режим REST-запросом mutability, например:

    curl -X PUT -H 'Content-Type:application/json' -d '{"mutable":false}' <schema-registry-url>/mutability
    

    Таким образом остановится запись в топик с данными реестра.

  2. Запустите утилиту обратной миграции на другой топик:

    crx-sr-data-import-13-to-9.sh --src-topic <топик> --dst-topic _schemas --config kafka-client.properties
    
  3. Остановите реестры 13 версии, поднять реестры нужной версии.