Конфигурирование Consumer

Далее приведены конфигурации для нового потребителя.

key.deserializer – Класс десериализатора для ключа, реализующего интерфейс org.apache.kafka.common.serialization.Deserializer

  • TYPE – class
  • IMPORTANCE – high

value.deserializer – Класс десериализатора для значения, реализующего интерфейс org.apache.kafka.common.serialization.Deserializer

  • TYPE – class
  • IMPORTANCE – high

bootstrap.servers – Список пар хост/порт, используемых для установления первоначального подключения к платформе ADS. В дальнейшем клиент будет использовать все сервера, независимо от того, какие указаны в данном параметре – этот список влияет только на начальные хосты, используемые для обнаружения полного набора серверов. Параметр должен быть задан в формате “host1:port1, host2:port2,…” (через запятую и без пробелов). Поскольку данные сервера используются только для первоначального подключения с целью обнаружения полного набора в кластере (который может динамически меняться), списку необязательно содержать полный набор серверов (можно указать более одного, на случай отказа первого)

fetch.min.bytes – Минимальный объем данных, которые сервер должен вернуть по запросу на выборку. При недостаточном объеме данных запрос ожидает их накопления до установленного значения. Значение по умолчанию 1 байт означает, что запросы на выборку отвечают, как только доступен 1 байт данных, или по истечению времени ожидания запроса. Установка большего значения заставляет сервер ожидать больших объемов данных для накопления, что может немного повысить пропускную способность сервера за счет некоторой дополнительной задержки

  • TYPE – int
  • DEFAULT – 1
  • VALID VALUES – [0,…]
  • IMPORTANCE – high

group.id – Уникальная строка, идентифицирующая группу потребителей. Свойство требуется, если потребитель использует функциональность группового управления с помощью подписки (топика) или стратегии управления смещением на основе ADS

  • TYPE – string
  • DEFAULT – “”
  • IMPORTANCE – high

heartbeat.interval.ms – Время ожидания для координатора потребителя между heartbeat-сообщениями при использовании средств группового управления ADS. Heartbeat-сообщения используются для обеспечения активности сессии потребителя и перебалансировки, когда пользователи присоединяются или покидают группу. Значение должно быть установлено ниже, чем параметр session.timeout.ms (обычно оно не более 1/3 от этого значения). Его можно настроить еще ниже с целью контроля ожидаемого времени для нормальных перебалансировок. Указывается в миллисекундах

  • TYPE – int
  • DEFAULT – 3000
  • IMPORTANCE – high

max.partition.fetch.bytes – Максимальный объем данных для каждой партиции, который будет возвращен серверу. Из пакетов записи извлекаются потребителями. Если первый пакет записей в первой непустой партиции выборки больше установленного значения, пакет данных все равно будет возвращен для обеспечения гарантии возможности выполнения. Максимальный размер пакета записей, принятый брокером, определяется через message.max.bytes (конфигурация брокера) или max.message.bytes (конфигурация топика). Для ограничения размера запроса потребителя используется параметр fetch.max.bytes

  • TYPE – int
  • DEFAULT – 1048576
  • VALID VALUES – [0,…]
  • IMPORTANCE – high

session.timeout.ms – Время ожидания для выявления сбоев потребителей при использовании группового управления ADS. Потребитель посылает периодические heartbeat-сообщения брокеру с целью подтверждения своей активности. Если брокер не получает ни одного бита до истечения установленного времени сеанса, то удаляет данного потребителя из группы и начинает балансировку. Значение параметра должно быть в допустимом диапазоне конфигурации брокера group.min.session.timeout.ms и group.max.session.timeout.ms. Указывается в миллисекундах

  • TYPE – int
  • DEFAULT – 10000
  • IMPORTANCE – high

ssl.key.password – Пароль закрытого ключа в файле хранилища ключей. Необязательный параметр для клиента

  • TYPE – password
  • DEFAULT – null
  • IMPORTANCE – high

ssl.keystore.location – Расположение файла хранилища ключей. Необязательный параметр для клиента, может использоваться для двусторонней аутентификации клиента

  • TYPE – string
  • DEFAULT – null
  • IMPORTANCE – high

ssl.keystore.password – Пароль хранилища для файла хранения ключей. Необязательный параметр для клиента, требуется только при настройке ssl.keystore.location

  • TYPE – password
  • DEFAULT – null
  • IMPORTANCE – high

ssl.truststore.location – Расположение файла хранилища trust store

  • TYPE – string
  • DEFAULT – null
  • IMPORTANCE – high

ssl.truststore.password – Пароль для файла хранилища trust store. При неустановленном пароле доступ к хранилищу есть, но осуществляется с отключенной проверкой надежности

  • TYPE – password
  • DEFAULT – null
  • IMPORTANCE – null

auto.offset.reset – В случае если в ADS нет начального смещения или текущее смещение больше не существует на сервере (например, так как данные удалены):

  • earliest: автоматически сбросить смещение до самого раннего смещения;
  • latest: автоматически сбросить смещение до последнего смещения;
  • none: исключение для потребителя, если предыдущее смещение для группы потребителей не найдено;
  • anything else: исключение для потребителя.
  • TYPE – string
  • DEFAULT – latest
  • VALID VALUES – [latest, earliest, none]
  • IMPORTANCE – medium

connections.max.idle.ms – Закрытие бездействующих соединений по истечению заданного периода. Указывается в миллисекундах

  • TYPE – long
  • DEFAULT – 540000
  • IMPORTANCE – medium

enable.auto.commit – При значении “true” смещение потребителя периодически фиксируется в фоновом режиме

  • TYPE – boolean
  • DEFAULT – true
  • IMPORTANCE – medium

exclude.internal.topics – Предоставление потребителю записей из внутренних топиков (например, смещения). При значении “true” единственным способом получения записей из внутреннего топика является подписка на него

  • TYPE – boolean
  • DEFAULT – true
  • IMPORTANCE – medium

fetch.max.bytes – Максимальный объем данных, который сервер должен вернуть для запроса на выборку. Параметр не является абсолютным максимумом. Из пакетов записи извлекаются потребителями. Если первый пакет записей в первой непустой партиции выборки больше установленного значения, пакет данных все равно будет возвращен для обеспечения гарантии возможности выполнения. Максимальный размер пакета записей, принятый брокером, определяется через message.max.bytes (конфигурация брокера) или max.message.bytes (конфигурация топика). При этом потребитель параллельно выполняет несколько выборок

  • TYPE – int
  • DEFAULT – 52428800
  • VALID VALUES – [0,…]
  • IMPORTANCE – medium

isolation.level – Контроль транзакционно записанных данных. Если установлено значение “read_committed”, consumer.poll() возвращает только совершенные транзакционные сообщения. При значении “read_uncommitted” (по умолчанию), consumer.poll() возвращает все сообщения, даже прерванные. Нетранзакционные сообщения возвращаются в любом режиме. Данные всегда возвращаются в порядке смещения. Следовательно, в режиме “read_committed” consumer.poll() возвращает сообщения только до последнего стабильного смещения (LSO), которое меньше, чем смещение первой открытой транзакции. То есть любые данные, появляющиеся после текущей транзакциии, удерживаются до завершения соответствующей транзакции. Потребители “read_committed” не могут считывать высокий водяной знак в процессе транзакции. Так же в режиме “read_committed” метод seekToEnd возвращает LSO

  • TYPE – string
  • DEFAULT – read_uncommitted
  • VALID VALUES – [read_committed, read_uncommitted]
  • IMPORTANCE – medium

max.poll.interval.ms – Максимальная задержка времени между вызовами poll() при управлении группами потребителей. Параметр устанавливает верхнюю границу времени, в течение которого потребитель может бездействовать. Если poll() не вызывается до истечения установленного таймаута, потребитель считается неисправным, и группа перебалансируется с целью переназначения партиций. Указывается в миллисекундах

  • TYPE – int
  • DEFAULT – 300000
  • VALID VALUES – [1,…]
  • IMPORTANCE – medium

max.poll.records – Максимальное число записей, возвращаемых за один вызов poll()

  • TYPE – int
  • DEFAULT – 500
  • VALID VALUES – [1,…]
  • IMPORTANCE – medium

partition.assignment.strategy – Класс стратегии назначения партиций, которую клиент использует для распределения принадлежности партиции инстансам потребителя при групповом управлении

receive.buffer.bytes – Размер буфера приема TCP (SO_RCVBUF) при чтении данных. Если значение равно “-1”, используется ОС по умолчанию

  • TYPE – int
  • DEFAULT – 65536
  • VALID VALUES – [-1,…]
  • IMPORTANCE – medium

request.timeout.ms – Максимальное время ожидания клиентом ответа на запрос. Если ответ не получен до истечения установленного значения, клиент повторно отправляет запрос при необходимости. Указывается в миллисекундах

  • TYPE – int
  • DEFAULT – 305000
  • VALID VALUES – [0,…]
  • IMPORTANCE – medium

sasl.jaas.config – Параметры контекста входа JAAS для соединений SSL в формате, используемом файлами конфигурации JAAS. Формат файла конфигурации JAAS описан по ссылке. Формат значения: “(=)*;”

  • TYPE – password
  • DEFAULT – null
  • IMPORTANCE – medium

sasl.kerberos.service.name – Имя принципала Kerberos, которое запускает ADS. Значение можно определить в конфигурации ADS JAAS либо в конфигурации ADS

  • TYPE – string
  • DEFAULT – null
  • IMPORTANCE – medium

sasl.mechanism – Механизм SASL для клиентских подключений. Может быть любой механизм, для которого обеспечивается безопасность. По умолчанию используется GSSAPI

  • TYPE – string
  • DEFAULT – GSSAPI
  • IMPORTANCE – medium

security.protocol – Протокол безопасности для связи между брокерами. Допустимые значения: “PLAINTEXT”, “SSL”, “SASL_PLAINTEXT”, “SASL_SSL”

  • TYPE – string
  • DEFAULT – PLAINTEXT
  • IMPORTANCE – medium

send.buffer.bytes – Буфер SO_SNDBUF сокета сервера сокетов. При значении параметра “-1” используется ОС по умолчанию

  • TYPE – int
  • DEFAULT – 131072
  • VALID VALUES – [-1,…]
  • IMPORTANCE – medium

ssl.enabled.protocols – Список протоколов, включенных для соединений SSL

  • TYPE – list
  • DEFAULT – TLSv1.2,TLSv1.1,TLSv1
  • IMPORTANCE – medium

ssl.keystore.type – Формат файла хранилища ключей. Необязательный параметр для клиента

  • TYPE – string
  • DEFAULT – JKS
  • IMPORTANCE – medium

ssl.protocol – Протокол SSL для генерации SSLContext. Значение по умолчанию – “TLS”, что подходит для большинства случаев. Допустимыми значениями в последних JVM являются “TLS”, “TLSv1.1” и “TLSv1.2”. Протоколы “SSL”, “SSLv2” и “SSLv3” могут поддерживаться в более старых JVM, но их использование не рекомендуется из-за известных уязвимостей безопасности

  • TYPE – string
  • DEFAULT – TLS
  • IMPORTANCE – medium

ssl.provider – Имя поставщика безопасности для соединений SSL. Значением по умолчанию является поставщик безопасности по умолчанию для JVM

  • TYPE – string
  • DEFAULT – null
  • IMPORTANCE – medium

ssl.truststore.type – Формат файла хранилища trust store

  • TYPE – string
  • DEFAULT – JKS
  • IMPORTANCE – medium

auto.commit.interval.ms – Частота автофиксации потребительских смещений при включенном параметре enable.auto.commit (значение “true”). Указывается в миллисекундах

  • TYPE – int
  • DEFAULT – 5000
  • VALID VALUES – [0,…]
  • IMPORTANCE – low

check.crcs – Автоматическая проверка CRC32 считываемых записей. Проверка добавляет некоторые накладные расходы, поэтому она может быть отключена в случаях, требующих высокой производительности

  • TYPE – boolean
  • DEFAULT – true
  • IMPORTANCE – low

client.id – Строка id для передачи на сервер при выполнении запросов. Целью является возможность отслеживания источника запросов за пределами ip/port, позволяя включать логическое имя приложения в журнал запросов на стороне сервера

  • TYPE – string
  • DEFAULT – “”
  • IMPORTANCE – low

fetch.max.wait.ms – Максимальный период времени, в течение которого сервер блокируется, прежде чем ответить на запрос выборки (в случае недостаточного объема данных для незамедлительного ответа, заданного функцией fetch.min.bytes). Указывается в миллисекундах

  • TYPE – int
  • DEFAULT – 500
  • VALID VALUES – [0,…]
  • IMPORTANCE – low

interceptor.classes – Список классов для использования в качестве интерсепторов. Реализация интерфейса org.apache.kafka.clients.consumer.ConsumerInterceptor позволяет перехватывать (и, возможно, видоизменять) полученные потребителем записи. По умолчанию интерсепторы не установлены

metadata.max.age.ms – Период времени, после которого принудительно обновляются метаданные даже при отсутствии видимых изменений в лидере партиции с целью предварительного обнаружения новых брокеров или партиций. Указывается в миллисекундах

  • TYPE – long
  • DEFAULT – 300000
  • VALID VALUES – [0,…]
  • IMPORTANCE – low

metric.reporters – Список классов для использования в качестве репортеров метрик. Реализация интерфейса org.apache.kafka.common.metrics.MetricsReporter позволяет подключать классы, которые будут уведомлены о создании новой метрики. JmxReporter всегда включен в реестр статистических данных JMX

metrics.num.samples – Количество выборок, поддерживаемых для вычисления метрик

  • TYPE – int
  • DEFAULT – 2
  • VALID VALUES – [1,…]
  • IMPORTANCE – low

metrics.recording.level – Самый высокий уровень записи для метрик

  • TYPE – string
  • DEFAULT – INFO
  • VALID VALUES – [INFO, DEBUG]
  • IMPORTANCE – low

metrics.sample.window.ms – Время ожидания вычисления метрик выборки. Указывается в миллисекундах

  • TYPE – long
  • DEFAULT – 30000
  • VALID VALUES – [0,…]
  • IMPORTANCE – low

reconnect.backoff.max.ms – Максимальный период времени ожидания повторного подключения к брокеру при неоднократных сбоях соединения. Отсрочка на хост увеличивается экспоненциально для каждого последующего сбоя соединения, вплоть до установленного максимума. После расчета увеличения отсрочки к значению добавляется 20% случайного джиттера во избежание помех связи. Указывается в миллисекундах

  • TYPE – long
  • DEFAULT – 1000
  • VALID VALUES – [0,…]
  • IMPORTANCE – low

reconnect.backoff.ms – Базовый период времени ожидания повторного подключения к хосту. Позволяет избегать многократного подключения к узлу в узком цикле. Данная отсрочка применяется ко всем попыткам подключения клиента к брокеру. Указывается в миллисекундах

  • TYPE – long
  • DEFAULT – 50
  • VALID VALUES – [0,…]
  • IMPORTANCE – low

retry.backoff.ms – Время ожидания перед повторной попыткой отправки неудавшегося запроса в партицию топика. Указывается в миллисекундах

  • TYPE – long
  • DEFAULT – 100
  • VALID VALUES – [0,…]
  • IMPORTANCE – low

sasl.kerberos.kinit.cmd – Путь команд Kerberos kinit

  • TYPE – string
  • DEFAULT – /usr/bin/kinit
  • IMPORTANCE – low

sasl.kerberos.min.time.before.relogin – Время ожидания авторизации потока между попытками обновления

  • TYPE – long
  • DEFAULT – 60000
  • IMPORTANCE – low

sasl.kerberos.ticket.renew.jitter – Процент случайного джиттера по отношению к времени возобновления

  • TYPE – double
  • DEFAULT – 0.05
  • IMPORTANCE – low

sasl.kerberos.ticket.renew.window.factor – Время ожидания авторизации потока до тех пор, пока не будет достигнут указанный коэффициент времени от последнего обновления до истечения срока действия тикета, и попытка возобновления тикета за этот период времени

  • TYPE – double
  • DEFAULT – 0.8
  • IMPORTANCE – low

ssl.cipher.suites – Список наборов шифров. Именованная комбинация аутентификации, шифрования, MAC и ключей обмена алгоритма для согласования параметров безопасности для сетевого подключения с использованием протокола TLS или SSL. По умолчанию поддерживаются все доступные варианты шифрования

  • TYPE – list
  • DEFAULT – null
  • IMPORTANCE – low

ssl.endpoint.identification.algorithm – Алгоритм идентификации конечных точек для валидации имени хоста сервера с использованием сертификата сервера

  • TYPE – string
  • DEFAULT – null
  • IMPORTANCE – low

ssl.keymanager.algorithm – Алгоритм службы управления ключами для SSL-соединений. Значением по умолчанию является алгоритм, настроенный для Java Virtual Machine

  • TYPE – string
  • DEFAULT – SunX509
  • IMPORTANCE – low

ssl.secure.random.implementation – Реализация SecureRandom PRNG, используемая для операций шифрования SSL

  • TYPE – string
  • DEFAULT – null
  • IMPORTANCE – low

ssl.trustmanager.algorithm – Алгоритм доверенной службы управления ключами для SSL-соединений. Значением по умолчанию является алгоритм, настроенный для Java Virtual Machine

  • TYPE – string
  • DEFAULT – PKIX
  • IMPORTANCE – low