Я использую новый клиент производителя kafka и устанавливаю свойство timeout.ms в 50 мс.Тайм-аут нового производителя Kafka
Вот полная конфигурация, используемая в производителя:
props.put("acks", "1");
props.put("buffer.memory", "33554432");
props.put("retries", "1");
props.put("batch.size", "16384");
props.put("client.id", "foo");
props.put("linger.ms", "0");
props.put("timeout.ms", "50");
Запрос среднее время отклика в некоторые моменты высокой нагрузки составляет 4 секунды, но я не получаю ошибку тайм-аута.
Знает ли кто-нибудь, как этот таймаут рассчитывается, когда он начинает подсчитываться и когда он заканчивается? Есть ли способ настроить таймаут для начала с момента вызова метода отправки производителя?
Эта конфигурация не существует для нового производителя кафки, она говорит, что она будет проигнорирована, когда я начну продюсер. –
Согласовано, новая конфигурация производителя использует это вместо старого свойства, соответственно обновил ответ – user2720864
Вы правы, это ожидаемое поведение, но наша проблема немного отличается. Мы перегружаем kafka, и некоторые узлы перестают отвечать (возможно, потому, что GC), но у продюсера нет тайм-аута на стороне клиента, поэтому он ждет, пока узел вернется для отправки сообщений в очереди. Существует проблема об этом на kafka jira (https://issues.apache.org/jira/browse/KAFKA-1788). –