Конфигурация¶
Доступны следующие операции:
- Хранить настройки пользовательских ролей в виде разделов в конфигурации на уровне кластера, например:
# YAML configuration file
my_role:
notify_url: "https://localhost:8080"
- Загружать и выгружать конфигурацию всего кластера через веб-интерфейс кластера или с помощью API (запросы GET/PUT к конечной точке admin/config:
curl localhost:8081/admin/config и curl -X PUT -d "{'my_parameter': 'value'}" localhost:8081/admin/config
). - Использовать конфигурацию в своей функции apply_config().
Каждый экземпляр в кластере хранит копию конфигурационного файла в своей рабочей директории (которую можно задать с помощью cartridge.cfg({workdir = ...})
):
- /var/lib/tarantool/<instance_name>/config.yml – для экземпляров, развернутых из RPM-пакетов, под управлением systemd;
- /home/<username>/tarantool_state/var/lib/tarantool/config.yml – для экземпляров, развернутых из архивов, под управлением tarantoolctl.
Конфигурация кластера представляет собой Lua-таблицу. Если некоторые данные конфигурации для конкретного приложения (например, схему базы данных, описанную с помощью языка определения данных DDL) необходимо хранить в каждом экземпляре кластера, можно использовать свой собственный API, добавив в таблицу специальный раздел. Кластер поможет безопасно передать его всем экземплярам.
Такой раздел создается параллельно (в одном файле) с разделами о топологии и о vshard, которые кластер генерирует автоматически. В отличие от сгенерированных разделов – логику изменения, проверки и применения конфигурации в специальном разделе необходимо определять вручную.
Конфигурация ролей ADG:
- Настройки подключения к Kafka
- Настройки топиков Kafka
- Настройки потребителей Kafka
- Настройки производителей Kafka
- Настройки подключений к schema_regisrty
- Настройки планировщика заданий
Настройки подключения к Kafka¶
Доступные опции:
bootstrap_connection_string
– cписок пар хост/порт для подключения к кластеру Kafka.
Пример значения: 'bootstrap_connection_string': '10.18.84.6:9092,10.18.84.7:9092'
Настройки топиков Kafka¶
Список пар топик/настройки топиков. Топик – значение из опции topics раздела конфигурации Настройки потребителей Kafka.
Доступные опции:
error_topic
– топик, куда уходят сообщения об ошибках загрузки;success_topic
– топик, куда уходят сообщения об успешной загрузке;target_table
– целевая таблица на storage, куда записываются строки из сообщений Kafka;schema_data
– наименование схемы изschema_registry
для значения сообщения;schema_key
– наименование схемы изschema_registry
для ключа сообщения.
Пример:
{ "EMPLOYEES":{
"error_topic":"input_test2",
"success_topic":"input_test",
"target_table":"EMPLOYEES",
"schema_data":"employees",
"schema_key":"adb_upload_request"
},
"DOCS":{
"error_topic":"input_test3",
"success_topic":"input_test4",
"target_table":"DOCS",
"schema_data":"docs",
"schema_key":"adb_upload_request"
}
}
Настройки потребителей Kafka¶
Доступные опции:
custom_properties
– список пар ключ/значение для кастомных настроек потребителя.
Пример значения:
{
"custom_properties":{
"log_level":7
}
}
properties
– список пар ключ/значение из https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md
Пример значения:
{
"properties":{
"enable.auto.offset.store":"false",
"auto.offset.reset":"latest",
"enable.auto.commit":"false",
"group.id":"tarantool-group-csv",
"partition.assignment.strategy":"roundrobin",
"enable.partition.eof":"false"
}
}
topics
– список топиков, на которые подписывается потребитель.
Пример значения:
{ "topics":[
"EMPLOYEES",
"DOCS"
]}
Настройки производителей Kafka¶
Доступные опции:
custom_properties
– список пар ключ/значение для кастомных настроек потребителя.
Пример значения:
{
"custom_properties":{
"log_level":7
}
}
properties
– список пар ключ/значение из https://github.com/edenhill/librdkafka/blob/master/CONFIGURATION.md
Пример значения:
{
"properties":{
"message.send.max.retries" : 500,
"compression.codec": "gzip"
}
}
Настройки подключений к schema_regisrty¶
Доступные опции:
host
– хостschema_regisrty
для подключения.
Пример значения: "host":"10.18.84.6"
.
port
– портschema_regisrty
для подключения.
Пример значения: "port":"8081"
Настройки планировщика заданий¶
Список пар задача/настройки задачи.
Доступные опции:
funcname
– название метода, который вызывается планировщиком;kind
- тип задачи на текущий момент, поддерживается только periodical;rolename
- название роли, на которой вызывается funcname;schedule
- крон-строка расписания.
Пример:
{
"scheduler.tasks":{
"kafka_send":{
"funcname":"test_msg_to_kafka",
"kind":"periodical",
"rolename":"app.roles.adg_output_processor",
"schedule":"5,10,15,20,25,30,35,40,45,50,55 * * * * *"
},
"kafka_sink":{
"funcname":"get_messages_from_kafka",
"kind":"periodical",
"rolename":"app.roles.adg_kafka_connector",
"schedule":"1-59 * * * * *"
}
}
}