Конфигурирование клиентского модуля#
Schema Registry Client (SR Client)#
SR Client — Java API для выполнения всех запросов к SR Server.
SR Client кеширует данные, полученные из REST Server. Поэтому, если схемы были пересозданы (удалены и повторно добавлены) или добавлена новая версия схемы, то приложение, которое использует SR Client, нужно перезапустить.
Для создания SR Client существуют три конструктора:
<Constructor-1> (url, user, password, sslCfg, AllowHosts):
Имя |
Тип |
Значение по умолчанию |
Описание |
|---|---|---|---|
|
String |
null |
Адрес сервера Schema Registry |
|
String |
null |
Имя пользователя |
|
String |
null |
Пароль пользователя |
|
SslContextConfig |
null |
Сконфигурированный контекст для безопасного соединения |
|
boolean |
null |
Флаг, отключающий проверку имени хоста |
<Constructor-2> (urls, user, password, sslCfg, AllowHosts):
Имя |
Тип |
Значение по умолчанию |
Описание |
|---|---|---|---|
|
List[String] |
null |
Список адресов серверов Schema Registry |
|
String |
null |
Имя пользователя |
|
String |
null |
Пароль пользователя |
|
SslContextConfig |
null |
Сконфигурированный контекст для безопасного соединения |
|
boolean |
null |
Флаг, отключающий проверку имени хоста |
<Constrictor-3> (cfg, sslCfg, AllowHosts):
Имя |
Тип |
Значение по умолчанию |
Описание |
|---|---|---|---|
|
SchemaRegistryClientConfig |
null |
Конфигурация пользователя, которая содержит адреса серверов SR, имя и пароль пользователя |
|
SslContextConfig |
null |
Сконфигурированный контекст для безопасного соединения |
|
boolean |
null |
Флаг, отключающий проверку имени хоста |
Schema Registry Serde (SR Serde)#
SR Serde — компонент Schema Registry, сериализатор (десериализатор), который:
сериализует данные и записывает в топик;
читает данные из топика и десериализует.
SR Serde необходимо использовать для клиентов (Производителей/Потребителей), если требуется валидация данных по схеме на стороне клиента.
Конфигурация производится в коде клиентского приложения.
Для Производителя в качестве сериализатора используется:
key.serializer=ru.sbrf.kafka.schemaregistry.schemas.SchemaRegistrySerde(если необходимо валидировать ключи сообщений);value.serializer=ru.sbrf.kafka.schemaregistry.schemas.SchemaRegistrySerde.
Для Потребителя в качестве десериализатора используется:
key.deserializer=ru.sbrf.kafka.schemaregistry.schemas.SchemaRegistrySerde(если применяется валидация для ключей сообщений);value.deserializer=ru.sbrf.kafka.schemaregistry.schemas.SchemaRegistrySerde.
Имя |
Значение по умолчанию |
Описание |
|---|---|---|
|
null |
Адрес SR Server |
|
null |
Имя пользователя для подключения к REST server |
|
null |
Пароль пользователя для подключения к REST server. Указывая пароль, шифрованный стандартным для Corax способом, используйте постфикс – |
|
AVRO |
Тип данных и схемы. Поддерживаются AVRO и JSON |
|
null |
Имя класса, реализующего интерфейс |
|
true |
Использовать последнюю на момент старта версию схемы |
|
null |
|
|
true |
Если |
Для расшифровки пароля клиента следующие настройки:
Имя |
Значение по умолчанию |
Описание |
|---|---|---|
|
null |
Дешифрование настроек приложения. Шифрованное значение должно иметь вид |
|
null |
Ключ для шифрования |
|
null |
Имя класса провайдера соли, имплементирующий интерфейс |
|
null |
Путь к файлу, содержащему salt |
SubjectNameStrategy — реализация данного интерфейса генерирует два вида идентификаторов.
Если стратегия имен по умолчанию не подходит, реализуйте этот интерфейс самостоятельно:
subject— имя субъекта по имени топика и признаку isKey. По умолчанию дляvalueимя субъекта совпадает с именем топика, в конце добавляется-value. Пример:accounts-value.Для ключей добавляется
-key. Пример:accounts-key.version— ключ, в котором будет лежать номер версии схемы. По умолчанию[subject].version. Пример:accounts.version=2— использовать вторую версию схемыaccounts;accounts-key.version=3— использовать третью версию схемы для ключей топикаaccounts.