• Русский
  • Конфигурация параметров

    При создании экземпляра Kafka по умолчанию используется системный шаблон параметров. Вы также можете настроить конфигурацию внутри шаблона параметров.

    Примечания
    1. После обновления версии Kafka, если есть параметры, которые необходимо удалить, устарели или изменены, пожалуйста, обратитесь к соответствующим изменениям на официальном сайте Kafka.
    2. Для обеспечения стабильной работы среды Kafka некоторые параметры и префиксы параметров не поддерживаются для настройки (например, advertised. authorizer. broker. controller cruise.control.metrics.reporter.bootstrap. cruise.control.metrics.topic host.name inter.broker.listener.name listener. listeners. log.dir password. port process.roles sasl. security. servers,node.id ssl. super.user zookeeper.clientCnxnSocket zookeeper.connect zookeeper.set.acl zookeeper.ssl).

    Содержание

    Процедура

    CLI
    Веб-консоль
    # Обновить конфигурацию экземпляра
    kubectl -n <namespace> patch rdskafka <name> --type=merge --patch='{"spec": {"config": {"auto.create.topics.enable":"true"}}}'

    Описание поддержки параметров

    Parametertypologydescriptionsdefault valueselectable value
    auto.create.topics.enablebooleanВключить автоматическое создание топиков на сервереtrue
    auto.leader.rebalance.enablebooleanВключает автоматический баланс лидеров. Фоновый поток регулярно проверяет распределение лидеров партиций с интервалом, настраиваемым параметром leader.imbalance.check.interval.seconds. Если дисбаланс лидеров превышает leader.imbalance.per.broker.percentage, запускается перебалансировка лидеров к предпочтительному лидеру для партиций.true
    background.threadsintКоличество потоков, используемых для различных фоновых задач10[1,...]
    compression.typestringУказывает конечный тип сжатия для заданного топика. Эта настройка принимает стандартные кодеки сжатия ('gzip', 'snappy', 'lz4', 'zstd'). Дополнительно поддерживается 'uncompressed', что эквивалентно отсутствию сжатия; и 'producer', что означает сохранение исходного кодека сжатия, установленного продюсером.producer
    delete.topic.enablebooleanВключает возможность удаления топиков. Удаление топика через административный инструмент не будет иметь эффекта, если эта настройка отключенаtrue
    leader.imbalance.check.interval.secondslongЧастота срабатывания проверки перебалансировки партиций контроллером300
    leader.imbalance.per.broker.percentageintДопустимое соотношение дисбаланса лидеров на брокер. Контроллер инициирует балансировку лидеров, если значение превышает этот процент для брокера. Значение указывается в процентах.10
    log.flush.interval.messageslongКоличество сообщений, накопленных в лог-партии, перед тем как сообщения будут сброшены на диск9223372036854775807[1,...]
    log.flush.offset.checkpoint.interval.msintЧастота обновления постоянной записи последнего сброса, которая служит точкой восстановления лога60000[0,...]
    log.flush.scheduler.interval.mslongЧастота в миллисекундах, с которой планировщик сброса лога проверяет необходимость сброса лога на диск9223372036854775807
    log.flush.start.offset.checkpoint.interval.msintЧастота обновления постоянной записи начального оффсета лога60000[0,...]
    log.retention.byteslongМаксимальный размер лога перед его удалением-1
    log.retention.hoursintКоличество часов хранения файла лога перед удалением (в часах), вторично по отношению к свойству log.retention.ms168
    log.roll.hoursintМаксимальное время до создания нового сегмента лога (в часах), вторично по отношению к свойству log.roll.ms168[1,...]
    log.roll.jitter.hoursintМаксимальное случайное отклонение, вычитаемое из logRollTimeMillis (в часах), вторично по отношению к свойству log.roll.jitter.ms0[0,...]
    log.segment.bytesintМаксимальный размер одного файла лога1073741824[14,...]
    log.segment.delete.delay.mslongВремя ожидания перед удалением файла из файловой системы60000[0,...]
    message.max.bytesintМаксимальный размер пакета записей, разрешённый Kafka (после сжатия, если оно включено). Если это значение увеличено и есть потребители старше версии 0.10.2, размер выборки потребителей также должен быть увеличен, чтобы они могли получать такие большие пакеты. В последней версии формата сообщений записи всегда группируются в пакеты для эффективности. В предыдущих версиях формата несжатые записи не группировались в пакеты, и это ограничение применялось только к одной записи. Можно установить для каждого топика с помощью параметра max.message.bytes на уровне топика.1048588[0,...]
    min.insync.replicasintКогда продюсер устанавливает acks в "all" (или "-1"), min.insync.replicas указывает минимальное количество реплик, которые должны подтвердить запись, чтобы она считалась успешной. Если это минимальное значение не достигается, продюсер вызовет исключение (NotEnoughReplicas или NotEnoughReplicasAfterAppend). Вместе min.insync.replicas и acks позволяют обеспечить более высокую гарантию надёжности. Типичный сценарий — создать топик с фактором репликации 3, установить min.insync.replicas в 2 и производить с acks "all". Это гарантирует, что продюсер вызовет исключение, если большинство реплик не получат запись.1[1,...]
    num.io.threadsintКоличество потоков, которые сервер использует для обработки запросов, включая операции ввода-вывода на диск8[1,...]
    num.network.threadsintКоличество потоков, которые сервер использует для приёма запросов из сети и отправки ответов в сеть3[1,...]
    num.recovery.threads.per.data.dirintКоличество потоков на каждый каталог данных, используемых для восстановления лога при запуске и сброса при завершении работы1[1,...]
    num.replica.fetchersintКоличество потоков выборки, используемых для репликации сообщений с исходного брокера. Увеличение этого значения может повысить степень параллелизма ввода-вывода у брокера-подписчика1
    offset.metadata.max.bytesintМаксимальный размер записи метаданных, связанной с коммитом оффсета4096
    offsets.commit.required.acksshortТребуемое количество подтверждений перед принятием коммита. В общем случае значение по умолчанию (-1) не следует переопределять-1
    offsets.commit.timeout.msintКоммит оффсета будет задержан до тех пор, пока все реплики для топика оффсетов не получат коммит или не истечёт таймаут. Аналогично таймауту запроса продюсера.5000[1,...]
    offsets.load.buffer.sizeintРазмер пакета для чтения сегментов оффсетов при загрузке оффсетов в кэш (мягкий лимит, переопределяется, если записи слишком большие).5242880[1,...]
    offsets.retention.check.interval.mslongЧастота проверки устаревших оффсетов600000[1,...]
    offsets.retention.minutesintПосле того, как группа потребителей потеряет всех своих потребителей (т.е. станет пустой), её оффсеты будут храниться в течение этого периода перед удалением. Для автономных потребителей (с ручным назначением) оффсеты истекают после времени последнего коммита плюс этот период хранения.10080[1,...]
    offsets.topic.compression.codecintКодек сжатия для топика оффсетов — сжатие может использоваться для обеспечения "атомарности" коммитов0
    offsets.topic.num.partitionsintКоличество партиций для топика коммитов оффсетов (не должно изменяться после развертывания)50[1,...]
    offsets.topic.replication.factorshortФактор репликации для топика оффсетов (установите выше для обеспечения доступности). Создание внутреннего топика не удастся, пока размер кластера не достигнет этого требования по фактору репликации.3[1,...]
    offsets.topic.segment.bytesintРазмер сегмента топика оффсетов должен быть относительно небольшим для ускорения сжатия лога и загрузки кэша104857600[1,...]
    queued.max.requestsintМаксимальное количество запросов в очереди для data-plane до блокировки сетевых потоков500[1,...]
    quota.consumer.defaultlongУСТАРЕЛО: Используется только если динамические стандартные квоты не настроены или в Zookeeper. Любой потребитель, отличающийся clientId/группой потребителей, будет ограничен, если он получает больше байт, чем это значение в секунду9223372036854775807[1,...]
    quota.producer.defaultlongУСТАРЕЛО: Используется только если динамические стандартные квоты не настроены или в Zookeeper. Любой продюсер, отличающийся clientId, будет ограничен, если он производит больше байт, чем это значение в секунду9223372036854775807[1,...]
    replica.fetch.min.bytesintМинимальное количество байт, ожидаемое для каждого ответа выборки. Если байт недостаточно, ожидание до replicaMaxWaitTimeMs1
    replica.fetch.wait.max.msintМаксимальное время ожидания для каждого запроса выборки, отправленного репликам-подписчикам. Это значение всегда должно быть меньше replica.lag.time.max.ms, чтобы предотвратить частое сокращение ISR для топиков с низкой пропускной способностью500
    replica.high.watermark.checkpoint.interval.mslongЧастота сохранения высокого водяного знака на диск5000
    replica.lag.time.max.mslongЕсли подписчик не отправлял запросы выборки или не потреблял до конца лога лидера в течение этого времени, лидер удалит подписчика из ISR30000
    replica.socket.receive.buffer.bytesintБуфер приёма сокета для сетевых запросов65536
    replica.socket.timeout.msintТаймаут сокета для сетевых запросов. Значение должно быть не меньше replica.fetch.wait.max.ms30000
    request.timeout.msintНастройка контролирует максимальное время ожидания клиентом ответа на запрос. Если ответ не получен до истечения таймаута, клиент при необходимости повторит запрос или завершит его с ошибкой, если исчерпаны попытки30000
    socket.receive.buffer.bytesintБуфер SO_RCVBUF для сокетов сервера. Если значение -1, используется значение по умолчанию ОС.102400
    socket.request.max.bytesintМаксимальное количество байт в сетевом запросе104857600[1,...]
    socket.send.buffer.bytesintБуфер SO_SNDBUF для сокетов сервера. Если значение -1, используется значение по умолчанию ОС.102400
    transaction.max.timeout.msintМаксимально допустимый таймаут для транзакций. Если запрошенное клиентом время транзакции превышает это значение, брокер вернёт ошибку в InitProducerIdRequest. Это предотвращает слишком большой таймаут, который может блокировать потребителей, читающих из топиков, включённых в транзакцию.900000[1,...]
    transaction.state.log.load.buffer.sizeintРазмер пакета для чтения сегментов журнала транзакций при загрузке producer ids и транзакций в кэш (мягкий лимит, переопределяется, если записи слишком большие).5242880[1,...]
    transaction.state.log.min.isrintПереопределённая настройка min.insync.replicas для топика транзакций.2[1,...]
    transaction.state.log.num.partitionsintКоличество партиций для топика транзакций (не должно изменяться после развертывания).50[1,...]
    transaction.state.log.replication.factorshortФактор репликации для топика транзакций (установите выше для обеспечения доступности). Создание внутреннего топика не удастся, пока размер кластера не достигнет этого требования по фактору репликации.3[1,...]
    transaction.state.log.segment.bytesintРазмер сегмента топика транзакций должен быть относительно небольшим для ускорения сжатия лога и загрузки кэша104857600[1,...]
    transactional.id.expiration.msintВремя в миллисекундах, в течение которого координатор транзакций будет ждать без получения обновлений статуса текущей транзакции, прежде чем истечёт срок действия её transactional id. Эта настройка также влияет на истечение срока действия producer id — producer id истекают после истечения этого времени с момента последней записи с данным producer id. Обратите внимание, что producer id могут истечь раньше, если последняя запись с producer id удалена из-за настроек хранения топика.604800000[1,...]
    unclean.leader.election.enablebooleanУказывает, разрешено ли выбирать в качестве лидера реплики, не входящие в ISR, в крайнем случае, даже если это может привести к потере данныхfalse
    zookeeper.max.in.flight.requestsintМаксимальное количество неподтверждённых запросов, которые клиент отправит Zookeeper до блокировки.10[1,...]
    zookeeper.session.timeout.msintТаймаут сессии Zookeeper18000

    Для получения дополнительной информации о поддерживаемых параметрах посетите сайт Kafka.