#Конфигурация параметров
При создании экземпляра 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.user).
#Процедура
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 ids истекают после истечения этого времени после последней записи с данным producer id. Обратите внимание, что producer ids могут истекать раньше, если последняя запись producer id удалена из-за настроек удержания топика. | 604800000 | [1,...] |
| unclean.leader.election.enable | boolean | Указывает, разрешено ли выбирать в качестве лидера реплики, не входящие в набор ISR, в крайнем случае, даже если это может привести к потере данных | false |
Для получения дополнительной информации о поддерживаемых параметрах перейдите на сайт Kafka.