как обрабатывать восстановление потребителя с помощью смещения с помощью Shopify sarama

#go #apache-kafka #kafka-consumer-api #sarama

#Вперед #apache-kafka #kafka-consumer-api #sarama

Вопрос:

Я читал, что kafka предоставляет клиентскую библиотеку для потребителей, которая позволяет восстанавливать, сохраняя последнее считанное смещение в zookeeper (не на 100% уверен в том, где оно хранится).

Возможно ли сделать то же самое с потребителями Sarama?

Допустим, я читаю до смещения 550, мой потребитель падает на 5 минут, сейчас у нас смещение 700, но я хочу возобновить потребление со смещения 550.

Возможно ли это без необходимости сохранять состояние самостоятельно? Я бы предположил, что это так, но я не понимаю, как.

Я нашел sarama.OffsetNewest/Oldest , но это не то, что я ищу…

Ответ №1:

Потребители Kafka раньше сохраняли смещения в Zookeeper, но теперь они хранят их непосредственно в Kafka. Смотрите Раздел «Потребитель» в документах Kafka.

Sarama очень хорошо справляется с этим, и потребители Sarama будут фиксировать (сохранять) смещения в Kafka по умолчанию.

Взгляните на пример потребителя Sarama. Первоначально этот пример начинается в конце раздела, но при перезапуске он будет перезапущен с последней позиции.

Комментарии:

1. потрясающе, спасибо, что указали на часть документа, объясняющую это.