Настройки Apache Kafka®
Для кластера Managed Service for Apache Kafka® можно задать настройки, которые относятся к Apache Kafka®. Часть настроек задается на уровне кластера, часть — на уровне топиков.
Метки рядом с названием настройки позволяют определить, с помощью какого интерфейса задается значение этой настройки: консоль управления, CLI, API или Terraform. Метка Все интерфейсы
указывает, что поддерживаются все перечисленные интерфейсы.
В зависимости от выбранного интерфейса, одна и та же настройка будет представлена по-разному, например, Compression type в консоли управления соответствует:
--compression-type
в CLI;compression_type
в gRPC API и Terraform;compressionType
в REST API.
Настройки уровня кластера
Доступны следующие настройки:
-
Auto create topics enable
Консоль управления
Управляет автоматическим созданием топиков.
По умолчанию автоматическое создание топиков выключено (
false
).Подробнее см. в документации Apache Kafka®.
-
Compression type
Все интерфейсы
В консоли управления этой настройке соответствует Тип сжатия.
Кодек, используемый для сжатия сообщений:
Консоль управления CLI Terraform и API Описание Uncompressed
uncompressed
COMPRESSION_TYPE_UNCOMPRESSED
Сжатие выключено Zstd
zstd
COMPRESSION_TYPE_ZSTD
Кодек zstd Lz4
lz4
COMPRESSION_TYPE_LZ4
Кодек lz4 Snappy
snappy
COMPRESSION_TYPE_SNAPPY
Кодек snappy Gzip
gzip
COMPRESSION_TYPE_GZIP
Кодек gzip Producer
producer
COMPRESSION_TYPE_PRODUCER
Кодек задается на стороне производителя По умолчанию кодек для сжатия устанавливается производителем (
COMPRESSION_TYPE_PRODUCER
).Это глобальная настройка, которая задается на уровне кластера. Ее можно переопределить на уровне топика.
Подробнее см. в документации Apache Kafka®.
-
Default replication factor
Все интерфейсы
Количество копий данных для топика в кластере.
Настройка применяется только для автоматически создаваемых топиков.
Минимальное значение и значение по умолчанию —
1
. Максимальное значение равно количеству хостов-брокеров в кластере.См. также описание настройки уровня топика Replication factor.
Подробнее см. в документации Apache Kafka®.
-
Log flush interval messages
Все интерфейсы
В консоли управления этой настройке соответствует Максимальное число сообщений в памяти.
Количество сообщений топика, которое может накопиться в памяти прежде, чем эти сообщения будут записаны на диск. Например, если параметр равен
1
, запись на диск будет происходить после получения каждого сообщения, а если5
, то сообщения будут записываться на диск группами по пять.Минимальное значение —
1
, максимальное значение и значение по умолчанию —9223372036854775807
.Это глобальная настройка, которая задается на уровне кластера. Ее можно переопределить на уровне топика.
Подробнее см. в документации Apache Kafka®.
-
Log flush interval ms
Все интерфейсы
Максимальное время в миллисекундах, в течение которого сообщение может храниться в памяти перед принудительным сбросом на диск. Если значение не задано, то используется значение настройки Log flush scheduler interval ms.
Максимальное значение —
9223372036854775807
.Это глобальная настройка, которая задается на уровне кластера. Ее можно переопределить на уровне топика.
Подробнее см. в документации Apache Kafka®.
-
Log flush scheduler interval ms
Все интерфейсы
Период времени (в миллисекундах), по истечении которого проверяется наличие логов, которые нужно сбросить на диск. Эта проверка выполняется процессом, ответственным за сброс логов.
Максимальное значение и значение по умолчанию —
9223372036854775807
.Подробнее см. в документации Apache Kafka®.
-
Log preallocate
Консоль управления
CLI
Terraform
Определяет, будет ли заранее выделяться место под файлы журналов.
По умолчанию место под файлы журналов выделяется по мере их заполнения (
false
).Это глобальная настройка, которая задается на уровне кластера. Ее можно переопределить на уровне топика.
Подробнее см. в документации Apache Kafka®.
-
Log retention bytes
Все интерфейсы
В консоли управления этой настройке соответствует Максимальный размер раздела, байт.
Максимальный размер (в байтах), до которого может вырасти раздел. Когда раздел достигнет заданного размера, Apache Kafka® начнет удалять старые сегменты лога. Настройка применяется, если действует политика очистки лога
Delete
.Минимальное значение и значение по умолчанию —
-1
(размер лога не ограничивается), максимальное значение —9223372036854775807
.Используйте эту настройку, если необходимо контролировать размер лога из-за ограниченного дискового пространства.
Это глобальная настройка, которая задается на уровне кластера. Ее можно переопределить на уровне топика.
Подробнее см. в документации Apache Kafka®.
См. также настройку Log retention ms.
-
Log retention hours
Все интерфейсы
Время (в часах), в течение которого Apache Kafka® будет хранить файл сегмента лога. Эта настройка применяется, если действует политика очистки лога
Delete
: по истечении заданного времени файл сегмента будет удален.Максимальное значение и значение по умолчанию —
168
.Подробнее см. в документации Apache Kafka®.
-
Log retention minutes
Все интерфейсы
Время (в минутах), в течение которого Apache Kafka® будет хранить файл сегмента лога. Эта настройка применяется, если действует политика очистки лога
Delete
: по истечении заданного времени файл сегмента будет удален.Максимальное значение —
2147483647
. Если значение не задано, то используется настройка Log retention hours.Подробнее см. в документации Apache Kafka®.
-
Log retention ms
Все интерфейсы
В консоли управления этой настройке соответствует Время жизни сегмента лога, мс.
Время (в миллисекундах), в течение которого Apache Kafka® будет хранить файл сегмента лога. Эта настройка применяется, если действует политика очистки лога
Delete
: по истечении заданного времени файл сегмента будет удален.Минимальное значение —
-1
(логи хранятся без ограничений по времени), максимальное значение —9223372036854775807
. Если значение не задано, используется настройка Log retention minutes.Важно
Если для настроек Log retention bytes и Log retention ms указано значение
-1
, лог растет неограниченно. Это может привести к быстрому исчерпанию места в хранилище кластера.Это глобальная настройка, которая задается на уровне кластера. Ее можно переопределить на уровне топика.
Подробнее см. в документации Apache Kafka®.
См. также настройку Log retention bytes.
-
Log segment bytes
Консоль управления
CLI
Terraform
Максимальный размер (в байтах) пачки сообщений, который Apache Kafka® разрешает записать в топик производителю или прочитать из топика потребителю (после сжатия, если оно включено).
Минимальное значение —
14
, максимальное значение —2147483647
, значение по умолчанию —1073741824
(1 гигабайт).Это глобальная настройка, которая задается на уровне кластера. Ее можно переопределить на уровне топика.
Подробнее см. в разделе Максимальный размер сегмента логов и в документации Apache Kafka®.
-
Num partitions
Все интерфейсы
Количество разделов лога на топик в кластере.
Настройка применяется только для автоматически создаваемых топиков.
Минимальное значение и значение по умолчанию —
1
.См. также описание настройки уровня топика Num partitions.
Подробнее см. в документации Apache Kafka®.
-
Socket receive buffer bytes
Консоль управления
Размер буфера для сокета приема (в байтах).
Минимальное значение и значение по умолчанию —
-1
(используются настройки операционной системы), максимальное значение —2147483647
.Подробнее см. в документации Apache Kafka®.
-
Socket send buffer bytes
Консоль управления
Размер буфера для сокета отправки (в байтах).
Минимальное значение и значение по умолчанию —
-1
(используются настройки операционной системы), максимальное значение —2147483647
.Подробнее см. в документации Apache Kafka®.
Настройки отдельных топиков
Доступны следующие настройки:
-
Cleanup policy
Консоль управления
CLI
API
В консоли управления этой настройке соответствует Политика очистки лога.
Политика хранения старых сообщений лога:
Delete
(CLEANUP_POLICY_DELETE
для Terraform и API) — удалять сегменты лога либо при истечении срока их хранения, либо при достижении предельного размера лога;Compact
(CLEANUP_POLICY_COMPACT
для Terraform и API) — сжимать сообщения в логе;CompactAndDelete
(CLEANUP_POLICY_COMPACT_AND_DELETE
для Terraform и API) — использовать как сжатие сообщений, так и удаление сегментов лога.
Подробнее см. в документации Apache Kafka®.
-
Compression type
Все интерфейсы
В консоли управления этой настройке соответствует Тип сжатия.
См. описание настройки уровня кластера Compression type.
Подробнее см в документации Apache Kafka®.
-
Delete delay, ms
Все интерфейсы
В консоли управления этой настройке соответствует Задержка удаления, мс.
Время ожидания перед удалением файла из файловой системы.
Подробнее см. в документации Apache Kafka®.
-
Delete retention
Консоль управления
Время (в миллисекундах), в течение которого нужно хранить tombstone-маркеры удаления для топиков со сжатым логом. Эта настройка применяется только в том случае, если политика очистки лога установлена в режим
Compact
илиCompactAndDelete
.Подробнее см. в документации Apache Kafka®.
-
Flush messages
Все интерфейсы
В консоли управления этой настройке соответствует Максимальное число сообщений в памяти.
См. описание настройки уровня кластера Log flush interval messages.
Подробнее см. в документации Apache Kafka®.
-
Flush, ms
Все интерфейсы
В консоли управления этой настройке соответствует Время хранения сообщения в памяти, мс.
См. описание настройки уровня кластера Log flush interval ms.
Подробнее см. в документации Apache Kafka®.
-
Maximum batch size
Все интерфейсы
В консоли управления этой настройке соответствует Максимальный размер группы сообщений.
См. описание настройки уровня кластера Log segment bytes.
Минимальное значение —
0
, значение по умолчанию —1048588
(1 мегабайт).Подробнее см. в документации Apache Kafka®.
-
Min compaction lag, ms
Все интерфейсы
В консоли управления этой настройке соответствует Минимальная задержка сжатия, мс.
Минимальное время, в течение которого сообщение в логе будет оставаться несжатым.
Подробнее см. в документации Apache Kafka®.
-
Minimum number of in-sync replicas
Консоль управления
CLI
API
В консоли управления этой настройке соответствует Минимальное число синхронных реплик.
Минимальное количество реплик, от которых необходимо дождаться подтверждения записи, чтобы запись сообщения в топик считалась успешной. Используйте эту настройку, если производитель (Producer) ожидает подтверждения успешной записи от всех хостов-брокеров кластера слишком долго.
Минимальное значение зависит от количества хостов-брокеров:
- для кластеров с одним хостом-брокером —
1
; - для кластеров с двумя и более хостами-брокерами —
2
.
Подробнее см. в документации Apache Kafka®.
- для кластеров с одним хостом-брокером —
-
Num partitions
Все интерфейсы
В консоли управления этой настройке соответствует Количество разделов.
Количество разделов лога на топик.
Минимальное значение и значение по умолчанию —
1
.См. также описание настройки уровня кластера Num partitions.
Подробнее см. в документации Apache Kafka®.
-
Preallocate
CLI
Terraform
См. описание настройки уровня кластера Log preallocate.
Подробнее см. в документации Apache Kafka®.
-
Replication factor
Все интерфейсы
В консоли управления этой настройке соответствует Фактор репликации.
Количество копий данных для топика.
Минимальное значение и значение по умолчанию —
1
. Максимальное значение равно количеству хостов-брокеров в кластере.См. также описание настройки уровня кластера Default replication factor.
Подробнее см. в документации Apache Kafka®.
-
Retention, bytes
Все интерфейсы
В консоли управления этой настройке соответствует Максимальный размер раздела, байт.
См. описание настройки уровня кластера Log retention bytes.
Подробнее см. в документации Apache Kafka®.
-
Retention, ms
Все интерфейсы
В консоли управления этой настройке соответствует Время жизни сегмента лога, мс.
См. описание настройки уровня кластера Log retention ms.
Подробнее см. в документации Apache Kafka®.
-
Segment bytes
Все интерфейсы
Размер сегмента для файлов лога в байтах.
Сохранение и очистка файлов сегмента выполняются пофайлово. Чем меньше заданный размер сегмента, тем больше файлов будет в логе, зато контроль над хранением будет более гибким.
Минимальное значение —
14
, значение по умолчанию —1073741824
(1 гигабайт).Подробнее см. в разделе Максимальный размер сегмента логов и в документации Apache Kafka®.