Смещение группы потребителей Kafka снижается до -1

Мы запускаем кластер Kafka в Куберне на основе gcr.io/google_containers/kubernetes-kafka:1.0-10.2.1 образ докера с бэкэндом zookeeper с помощью gcr.io/google_containers/kubernetes-zookeeper:1.0-3.4.10 с тремя экземплярами кафки и зоопарка.

У нас есть несколько разных групп потребителей, которые потребляют и производят данные по трем различным темам.

Поведение. Иногда группа потребителей устанавливает смещение для темы в разделе на -1 и с этого момента прекращает потребление этой темы вместе. Если мы перезапускаем наших потребителей, мы можем видеть, что они устанавливают свое смещение на самое последнее смещение, что может означать, что потребитель пропустил сообщения в промежутке между переходом к -1 и перезапуском.

У меня возникают проблемы с поиском того, почему группа потребителей будет устанавливать свое смещение равным -1 и почему она будет делать это "случайно" после нескольких дней безотказной работы. Есть ли логическое объяснение тому, почему Kafka установит это смещение для определенного потребителя? У наших реальных потребителей ничего не видно, что указывает на то, что они явно делают это.

В настоящее время потребители работают в golang И в Node.jsгде все сталкиваются с этой проблемой, поэтому мы предполагаем, что эта проблема связана не с нашими потребителями, а с нашей установкой Kafka.

0 ответов

Политика хранения смещения по умолчанию offsets.retention.minutes Раньше это был 1 день, а в старых версиях Kafka смещение было уничтожено даже для активных потребителей. Исправлено с KIP-211

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

Мы смогли обойти это, увеличив срок хранения до 7 дней, что, по-видимому, и было сделано Кафкой, см. KIP-186.

Другие вопросы по тегам