#Конфигурация параметров
При создании экземпляра Kafka по умолчанию используется системный шаблон параметров. Вы также можете настроить конфигурацию внутри шаблона параметров.
Примечания
- После обновления версии Kafka, если есть параметры, которые необходимо удалить, устарели или изменить, пожалуйста, обратитесь к соответствующим изменениям на официальном сайте Kafka.
- Для обеспечения стабильной работы среды Kafka некоторые параметры и префиксы параметров не поддерживаются для настройки (например,
advertised.authorizer.broker.controllercruise.control.metrics.reporter.bootstrap.cruise.control.metrics.topichost.nameinter.broker.listener.namelistener.listeners.log.dirpassword.portprocess.rolessasl.security.servers,node.idssl.super.userzookeeper.clientCnxnSocketzookeeper.connectzookeeper.set.aclzookeeper.ssl).
#Процедура
CLI
Веб-консоль
# Обновить конфигурацию экземпляра
kubectl -n <namespace> patch rdskafka <name> --type=merge --patch='{"spec": {"config": {"auto.create.topics.enable":"true"}}}'- Нажмите на Kafka в левой навигационной панели.
- Выберите целевой namespace.
- Нажмите на имя целевого экземпляра, чтобы перейти на страницу с подробностями.
- Во вкладке Parameter Configuration нажмите Update Parameters.
- Установите параметры в соответствии с бизнес-требованиями.
- Нажмите Update.
#Описание поддержки параметров
| Parameter | typology | descriptions | default value | selectable value |
|---|---|---|---|---|
| auto.create.topics.enable | boolean | Включить автоматическое создание топиков на сервере | true | |
| auto.leader.rebalance.enable | boolean | Включает автоматический баланс лидеров. Фоновый поток регулярно проверяет распределение лидеров партиций с интервалом, настраиваемым параметром leader.imbalance.check.interval.seconds. Если дисбаланс лидеров превышает leader.imbalance.per.broker.percentage, запускается перераспределение лидеров к предпочтительному лидеру для партиций. | true | |
| background.threads | int | Количество потоков, используемых для различных фоновых задач | 10 | [1,...] |
| compression.type | string | Указывает конечный тип сжатия для данного топика. Эта настройка принимает стандартные кодеки сжатия ('gzip', 'snappy', 'lz4', 'zstd'). Дополнительно поддерживаются 'uncompressed' — без сжатия; и 'producer' — сохранять исходный кодек сжатия, установленный продюсером. | producer | |
| delete.topic.enable | boolean | Включает удаление топиков. Удаление топика через админ-инструмент не будет работать, если эта настройка отключена | true | |
| leader.imbalance.check.interval.seconds | long | Частота срабатывания проверки перераспределения партиций контроллером | 300 | |
| leader.imbalance.per.broker.percentage | int | Допустимое соотношение дисбаланса лидеров на брокер. Контроллер инициирует балансировку лидеров, если значение превышает этот процент для брокера. Значение указывается в процентах. | 10 | |
| log.flush.interval.messages | long | Количество сообщений, накопленных в лог-партитиции, перед сбросом сообщений на диск | 9223372036854775807 | [1,...] |
| log.flush.offset.checkpoint.interval.ms | int | Частота обновления постоянной записи последнего сброса, которая служит точкой восстановления лога | 60000 | [0,...] |
| log.flush.scheduler.interval.ms | long | Частота в миллисекундах, с которой планировщик сброса лога проверяет необходимость сброса лога на диск | 9223372036854775807 | |
| log.flush.start.offset.checkpoint.interval.ms | int | Частота обновления постоянной записи начального смещения лога | 60000 | [0,...] |
| log.retention.bytes | long | Максимальный размер лога перед его удалением | -1 | |
| log.retention.hours | int | Количество часов хранения файла лога перед его удалением (в часах), вторично по отношению к свойству log.retention.ms | 168 | |
| log.roll.hours | int | Максимальное время до создания нового сегмента лога (в часах), вторично по отношению к свойству log.roll.ms | 168 | [1,...] |
| log.roll.jitter.hours | int | Максимальное случайное отклонение, вычитаемое из logRollTimeMillis (в часах), вторично по отношению к свойству log.roll.jitter.ms | 0 | [0,...] |
| log.segment.bytes | int | Максимальный размер одного файла лога | 1073741824 | [14,...] |
| log.segment.delete.delay.ms | long | Время ожидания перед удалением файла из файловой системы | 60000 | [0,...] |
| message.max.bytes | int | Максимальный размер пакета записей, разрешённый Kafka (после сжатия, если оно включено). Если увеличить это значение и есть потребители старше версии 0.10.2, размер выборки потребителей также должен быть увеличен, чтобы они могли получать такие большие пакеты. В последней версии формата сообщений записи всегда группируются в пакеты для эффективности. В предыдущих версиях формата несжатые записи не группировались, и это ограничение применялось только к одной записи. Можно задать для каждого топика с помощью параметра max.message.bytes на уровне топика. | 1048588 | [0,...] |
| min.insync.replicas | int | При установке продюсером параметра acks в "all" (или "-1") min.insync.replicas указывает минимальное количество реплик, которые должны подтвердить запись, чтобы она считалась успешной. Если это минимальное значение не достигается, продюсер выдаст исключение (NotEnoughReplicas или NotEnoughReplicasAfterAppend). Вместе min.insync.replicas и acks позволяют обеспечить более высокую гарантию надёжности. Типичный сценарий: создать топик с фактором репликации 3, установить min.insync.replicas в 2 и производить с acks "all". Это гарантирует, что продюсер выдаст исключение, если большинство реплик не получит запись. | 1 | [1,...] |
| num.io.threads | int | Количество потоков, которые сервер использует для обработки запросов, включая операции ввода-вывода на диск | 8 | [1,...] |
| num.network.threads | int | Количество потоков, которые сервер использует для приёма запросов из сети и отправки ответов | 3 | [1,...] |
| num.recovery.threads.per.data.dir | int | Количество потоков на каждый каталог данных, используемых для восстановления лога при запуске и сброса при завершении работы | 1 | [1,...] |
| num.replica.fetchers | int | Количество потоков выборки, используемых для репликации сообщений с исходного брокера. Увеличение этого значения может повысить степень параллелизма ввода-вывода у брокера-подписчика | 1 | |
| offset.metadata.max.bytes | int | Максимальный размер записи метаданных, связанной с коммитом смещения | 4096 | |
| offsets.commit.required.acks | short | Требуемые подтверждения перед принятием коммита. Обычно значение по умолчанию (-1) не следует переопределять | -1 | |
| offsets.commit.timeout.ms | int | Коммит смещений будет задержан до тех пор, пока все реплики для топика смещений не получат коммит или не истечёт таймаут. Аналогично таймауту запроса продюсера. | 5000 | [1,...] |
| offsets.load.buffer.size | int | Размер пакета для чтения сегментов смещений при загрузке смещений в кэш (мягкий лимит, переопределяется, если записи слишком большие). | 5242880 | [1,...] |
| offsets.retention.check.interval.ms | long | Частота проверки устаревших смещений | 600000 | [1,...] |
| offsets.retention.minutes | int | После того, как группа потребителей потеряет всех своих потребителей (т.е. станет пустой), её смещения будут храниться в течение этого периода, прежде чем быть удалёнными. Для автономных потребителей (с ручным назначением) смещения истекают после времени последнего коммита плюс этот период хранения. | 10080 | [1,...] |
| offsets.topic.compression.codec | int | Кодек сжатия для топика смещений — сжатие может использоваться для обеспечения "атомарных" коммитов | 0 | |
| offsets.topic.num.partitions | int | Количество партиций для топика коммитов смещений (не должно изменяться после развертывания) | 50 | [1,...] |
| offsets.topic.replication.factor | short | Фактор репликации для топика смещений (установите выше для обеспечения доступности). Создание внутреннего топика не удастся, пока размер кластера не достигнет этого требования по фактору репликации. | 3 | [1,...] |
| offsets.topic.segment.bytes | int | Размер сегмента топика смещений должен быть относительно небольшим для ускорения компактификации лога и загрузки кэша | 104857600 | [1,...] |
| queued.max.requests | int | Максимальное количество запросов в очереди для data-plane до блокировки сетевых потоков | 500 | [1,...] |
| quota.consumer.default | long | УСТАРЕЛО: Используется только если динамические квоты по умолчанию не настроены или в Zookeeper. Любой потребитель, отличающийся clientId/группой потребителей, будет ограничен, если он получает больше байт, чем это значение в секунду | 9223372036854775807 | [1,...] |
| quota.producer.default | long | УСТАРЕЛО: Используется только если динамические квоты по умолчанию не настроены или в Zookeeper. Любой продюсер, отличающийся clientId, будет ограничен, если он производит больше байт, чем это значение в секунду | 9223372036854775807 | [1,...] |
| replica.fetch.min.bytes | int | Минимальное количество байт, ожидаемое для каждого ответа выборки. Если байт недостаточно, ждать до replicaMaxWaitTimeMs | 1 | |
| replica.fetch.wait.max.ms | int | Максимальное время ожидания для каждого запроса выборки, отправленного репликам-подписчикам. Это значение всегда должно быть меньше replica.lag.time.max.ms, чтобы предотвратить частое сокращение ISR для топиков с низкой пропускной способностью | 500 | |
| replica.high.watermark.checkpoint.interval.ms | long | Частота сохранения высокого водяного знака на диск | 5000 | |
| replica.lag.time.max.ms | long | Если подписчик не отправлял запросы выборки или не потреблял до конца лога лидера в течение этого времени, лидер удалит подписчика из ISR | 30000 | |
| replica.socket.receive.buffer.bytes | int | Размер буфера приёма сокета для сетевых запросов | 65536 | |
| replica.socket.timeout.ms | int | Таймаут сокета для сетевых запросов. Значение должно быть не меньше replica.fetch.wait.max.ms | 30000 | |
| request.timeout.ms | int | Максимальное время ожидания ответа клиента на запрос. Если ответ не получен до истечения таймаута, клиент повторит запрос при необходимости или завершит запрос при исчерпании попыток. | 30000 | |
| socket.receive.buffer.bytes | int | Буфер SO_RCVBUF для серверных сокетов. Если значение -1, используется значение по умолчанию ОС. | 102400 | |
| socket.request.max.bytes | int | Максимальное количество байт в запросе сокета | 104857600 | [1,...] |
| socket.send.buffer.bytes | int | Буфер SO_SNDBUF для серверных сокетов. Если значение -1, используется значение по умолчанию ОС. | 102400 | |
| transaction.max.timeout.ms | int | Максимально допустимый таймаут для транзакций. Если запрошенное время транзакции клиента превышает это значение, брокер вернёт ошибку в InitProducerIdRequest. Это предотвращает слишком большой таймаут, который может блокировать потребителей, читающих из топиков, включённых в транзакцию. | 900000 | [1,...] |
| transaction.state.log.load.buffer.size | int | Размер пакета для чтения сегментов журнала транзакций при загрузке producer id и транзакций в кэш (мягкий лимит, переопределяется, если записи слишком большие). | 5242880 | [1,...] |
| transaction.state.log.min.isr | int | Переопределённая настройка min.insync.replicas для топика транзакций. | 2 | [1,...] |
| transaction.state.log.num.partitions | int | Количество партиций для топика транзакций (не должно изменяться после развертывания). | 50 | [1,...] |
| transaction.state.log.replication.factor | short | Фактор репликации для топика транзакций (установите выше для обеспечения доступности). Создание внутреннего топика не удастся, пока размер кластера не достигнет этого требования по фактору репликации. | 3 | [1,...] |
| transaction.state.log.segment.bytes | int | Размер сегмента топика транзакций должен быть относительно небольшим для ускорения компактификации лога и загрузки кэша | 104857600 | [1,...] |
| transactional.id.expiration.ms | int | Время в миллисекундах, в течение которого координатор транзакций будет ждать без получения обновлений статуса транзакции для текущей транзакции, прежде чем истечёт срок действия её transactional id. Эта настройка также влияет на истечение срока действия producer id — producer id истекают после истечения этого времени после последней записи с данным producer id. Обратите внимание, что producer id могут истечь раньше, если последняя запись с этим producer id удалена из-за настроек хранения топика. | 604800000 | [1,...] |
| unclean.leader.election.enable | boolean | Указывает, разрешено ли выбирать в качестве лидера реплики, не входящие в набор ISR, в крайнем случае, даже если это может привести к потере данных | false | |
| zookeeper.max.in.flight.requests | int | Максимальное количество неподтверждённых запросов, которые клиент может отправить в Zookeeper до блокировки. | 10 | [1,...] |
| zookeeper.session.timeout.ms | int | Таймаут сессии Zookeeper | 18000 |
Для получения дополнительной информации о поддерживаемых параметрах перейдите на сайт Kafka.