#Конфигурация параметров
При создании экземпляра 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 ids и транзакций в кэш (мягкий лимит, переопределяется, если записи слишком большие). | 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.