Будущие метаданные производителя Kafka в обратном вызове - PullRequest
0 голосов
/ 24 января 2019

В моем приложении при отправке сообщений я использую метаданные в обратном вызове, чтобы сохранить смещение записи для будущего использования. Однако иногда metadata.offset () возвращает -1, что усложняет ситуацию позже. Почему это происходит, и есть ли способ получить смещение, не используя тему для его поиска.

Редактировать: я нахожусь на ack 0 в настоящее время, когда я перехожу на ack 1, у меня больше нет этих ошибок, однако моя производительность резко падает. От 100 000 сообщений за 10 секунд до 1 минуты.

1 Ответ

0 голосов
/ 24 января 2019

acks = 0 Если установлено в ноль, то производитель не будет ждать каких-либо подтверждение от сервера вообще. Запись будет сразу добавлен в буфер сокета и считается отправленным. Никакой гарантии не может быть сделал, чтобы сервер получил запись в этом случае, и повторная настройка не вступит в силу (так как клиент не будет в общем знаю о любых сбоях). Смещение, возвращаемое для каждого запись всегда будет установлена ​​на -1.

Это не совсем так, поскольку из 100k сообщений я получил 95k со смещением, но я думаю, что это нормально. Еще нужно будет найти другое решение, чтобы получить смещение с ack = 0

...